пятница, 23 января 2015 г.

MS SQL: Создание нового последовательного Guid в базе данных

База данных: MS SQL 2008
Возникла потребность при создании записи в таблице генерировать новый последовательный Guid. Причем генерировать на уровне базы данных.

К сожалению, newsequentialid() имеет ограничения: её можно использовать только в качетсве default-значения колонки. Соответственно пришлось прибегнуь к обходному маневру: создать свою хранимую процедуру

CREATE PROCEDURE dbo.GenerateNewSequentialId(
  @NewId uniqueidentifier output
)
AS 
BEGIN
  declare @returnid table (id uniqueidentifier default newsequentialid(), fakefield int)

  INSERT INTO @returnid(fakefield)
  VALUES(1)
    
  set @NewId =  (select top 1 id from @returnid)
END


Статьи по теме
MS SQL использование GUID как первичных ключей (Primary key)


Комментариев нет:

Отправить комментарий