ไม่มี 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();
...