В основном я хочу использовать uniqueidentifier аналогично идентификатору. Я не хочу вставлять в него значения, он должен просто вставлять значения автоматически, различное значение для каждой строки. Я не могу установить автоинкремент на столбцах типа uniqueidentifier (свойство «autoincrement» установлено в false и не редактируется).Autoincrement uniqueidentifier
ответ
Или еще лучше: используйте столбец UNIQUEIDENITIFER по умолчанию как newsequentialid()
. Это даст вам несколько последовательных серий GUID.
CREATE TABLE dbo.YourTable
(SerialID UNIQUEIDENTIFIER
CONSTRAINT DF_SerialID DEFAULT newsequentialid(),
.... (other columns)......
)
Проблема заключается в: NEWSEQUENTIALID является только доступен в качестве столбца по умолчанию - вы не можете назвать его как функцию или что-нибудь. Но это, похоже, соответствует вашим требованиям.
UPDATE:, как представляется, признанная ошибка в SQL Server Management Studio, предотвращающий с указанием newsequentialid()
по умолчанию для столбца в интерактивном конструкторе таблиц.
См: http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/cad8a4d7-714f-44a2-adb0-569655ac66e6
Временное решение: создать таблицу без указания каких-либо значение по умолчанию, а затем введите в этом T-SQL заявление в обычном окне запроса и запустить его:
ALTER TABLE dbo.YourTable
ADD CONSTRAINT DF_SerialID DEFAULT newsequentialid() FOR SerialID
Это должно сделать обмануть!
Использовать значение NewID() в качестве значения по умолчанию. По крайней мере, это то, что вы сделали бы для SQL Server.
они не совсем рядом с последовательным/автоинкрементным g, хотя ..... –
Я пробовал это, но, похоже, генерирует всегда тот же идентификатор (этот: «00000000-0000-0000-0000-000000000000»). Поэтому при вставке второй строки я получаю ошибку (привязка для вставки первичного ключа, который уже используется) – drasto
вы должны установить newId() непосредственно в определении таблицы в своей базе данных! – MUG4N
Я думаю, вы имеете в виду в SQLServer, а не C# ...
Установите столбец как PRIMARY KEY и ROWGUID
RowGuid http://img341.imageshack.us/img341/8867/sqlserverrowguid.png
просто убедитесь, что ** NOT ** используйте, сделайте его кластеризованным индексом на столе !! –
Почему бы и нет? Я использую его в проекте и отлично работает, все выглядит нормально, проверяет план выполнения, упорядочивает таблицы, все нормально ... – BrunoLM
GUID как кластерный индекс ужасно плохой: посмотрите http: //www.sqlskills. com/BLOGS/KIMBERLY/post/GUIDs-as-PRIMARY-KEYs andor-the-clustering-key.aspx - они приводят к массивной фрагментации страниц и индексов –
Я думаю
CREATE TABLE dbo.YourTable
(
SerialID UNIQUEIDENTIFIER PRIMARY KEY DEFAULT newsequentialid()
)
является проще
- 1. Sqlite Autoincrement
- 2. Autoincrement поле
- 3. PHP: uniqueidentifier
- 4. Autoincrement ошибка синтаксиса
- 5. Вставить с помощью AutoIncrement
- 6. Autoincrement месяц автоматически рельсы
- 7. парусов ватерлинии Autoincrement
- 8. NHincernate autoincrement string column
- 9. Autoincrement with MongoEngine
- 10. Поле символов AutoIncrement MySQL
- 11. Autoincrement with SQL Insert
- 12. MySQL PrimaryKey AutoIncrement
- 13. AutoIncrement с иностранным ключом
- 14. PHP Autoincrement Array
- 15. Autoincrement метеор simpleschema член
- 16. mysql export теряет AutoIncrement
- 17. SQL Anywhere autoincrement reset
- 18. ID SQLite не Autoincrement
- 19. Sequelize autoIncrement и SQLite
- 20. Autoincrement PK in JDeveloper
- 21. sqlite autoincrement function
- 22. Autoincrement Alphabets in C#
- 23. project.json "version" autoincrement
- 24. Autoincrement in couchdb
- 25. Autoincrement значение входного
- 26. Autoincrement ID java db
- 27. Добавить Autoincrement столбец _id
- 28. WebSQL Autoincrement не работает
- 29. AutoIncrement PK приращением irregularry
- 30. libPayPalEC.a без uniqueIdentifier?
Это не проблема для меня. Ваш ответ кажется тем, что я искал. Я попытаюсь это сделать :) – drasto
У меня «Ошибка проверки по умолчанию для столбца XY». Не могли бы вы контролировать свой код (опечатка?)? – drasto
@drasto: Я запустил этот код на SQL Server 2008 R2, прежде чем опубликовать его - он работает. Какую * версию * SQL Server у вас есть ??? Я удалил дополнительные скобки вокруг newsequentialid() - может быть, это проблема? Действительно работает на 2008R2 –