Нет эквивалента SCOPE_IDENTITY () при использовании GUID в качестве первичных ключей, но вы можете использовать предложение OUTPUT для достижения аналогичного результата. Вам не нужно использовать табличную переменную для вывода.
CREATE TABLE dbo.GuidTest (
GuidColumn uniqueidentifier NOT NULL DEFAULT NewSequentialID(),
IntColumn int NOT NULL
)
GO
INSERT INTO GuidTest(IntColumn)
OUTPUT inserted.GuidColumn
VALUES(1)
Пример выше полезен, если вы хотите прочитать значение из .Net-клиента. Чтобы прочитать значение из .Net, вы просто должны использовать метод ExecuteScalar.
...
string sql = "INSERT INTO GuidTest(IntColumn) OUTPUT inserted.GuidColumn VALUES(1)";
SqlCommand cmd = new SqlCommand(sql, conn);
Guid guid = (Guid)cmd.ExecuteScalar();
...