Немає еквівалента 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();
...