GUID'leri birincil anahtar olarak kullanırken SCOPE_IDENTITY () eşdeğeri yoktur, ancak benzer bir sonuç elde etmek için OUTPUT yan tümcesini kullanabilirsiniz. Çıktı için bir tablo değişkeni kullanmanıza gerek yoktur.
CREATE TABLE dbo.GuidTest (
GuidColumn uniqueidentifier NOT NULL DEFAULT NewSequentialID(),
IntColumn int NOT NULL
)
GO
INSERT INTO GuidTest(IntColumn)
OUTPUT inserted.GuidColumn
VALUES(1)
Bir .Net istemcisinden değeri okumak istiyorsanız yukarıdaki örnek kullanışlıdır. Net'ten değeri okumak için sadece ExecuteScalar yöntemini kullanmanız gerekir.
...
string sql = "INSERT INTO GuidTest(IntColumn) OUTPUT inserted.GuidColumn VALUES(1)";
SqlCommand cmd = new SqlCommand(sql, conn);
Guid guid = (Guid)cmd.ExecuteScalar();
...