Может ли кто-нибудь сказать мне, есть ли эквивалент SCOPE_IDENTITY()
использования GUID в качестве первичного ключа в SQL Server?
Я не хочу сначала создавать GUID и сохранять как переменную, поскольку мы используем последовательные GUID в качестве наших первичных ключей.
Есть идеи, как лучше всего получить последний вставленный первичный ключ GUID?
OUTPUT
выдает ошибку для любой таблицы, к которой прикреплен триггер вставки.Эквивалента SCOPE_IDENTITY () при использовании GUID в качестве первичных ключей не существует, но вы можете использовать предложение OUTPUT для достижения аналогичного результата. Вам не нужно использовать табличную переменную для вывода.
Приведенный выше пример полезен, если вы хотите прочитать значение от клиента .Net. Чтобы прочитать значение из .Net, вы должны просто использовать метод ExecuteScalar.
источник
вы хотите использовать NEWID ()
но проблема с кластерным индексом есть в GUID. прочтите и это NEWSEQUENTIALID (). Это мои идеи, подумайте, прежде чем использовать GUID в качестве первичного ключа . :)
источник
источник
Используя этот поток в качестве ресурса, я создал следующее для использования в триггере:
Может помочь кому-то другому сделать то же самое. Любопытно, есть ли у кого-нибудь что-то плохое, чтобы сказать о производительности, если это плохая идея или нет.
источник