Эквивалента 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();
...