Ответ 1
Или даже лучше: используйте newsequentialid()
как значение по умолчанию для столбца UNIQUEIDENITIFER. Это даст вам несколько последовательных рядов GUID.
CREATE TABLE dbo.YourTable
(SerialID UNIQUEIDENTIFIER
CONSTRAINT DF_SerialID DEFAULT newsequentialid(),
.... (other columns)......
)
Проблема: newsequentialid доступен только в качестве столбца по умолчанию - вы не можете назвать его как функцию или что-то еще. Но это, похоже, соответствует вашим требованиям.
ОБНОВЛЕНИЕ: в 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
Это должно сделать трюк!