Không có SCOPE_IDENTITY () tương đương khi sử dụng GUID làm khóa chính, nhưng bạn có thể sử dụng mệnh đề OUTPUT để đạt được kết quả tương tự. Bạn không cần phải sử dụng một biến bảng cho đầu ra.
CREATE TABLE dbo.GuidTest (
GuidColumn uniqueidentifier NOT NULL DEFAULT NewSequentialID(),
IntColumn int NOT NULL
)
GO
INSERT INTO GuidTest(IntColumn)
OUTPUT inserted.GuidColumn
VALUES(1)
Ví dụ trên rất hữu ích nếu bạn muốn đọc giá trị từ máy khách .Net. Để đọc giá trị từ .Net, bạn chỉ cần sử dụng phương thức ExecuteScalar.
...
string sql = "INSERT INTO GuidTest(IntColumn) OUTPUT inserted.GuidColumn VALUES(1)";
SqlCommand cmd = new SqlCommand(sql, conn);
Guid guid = (Guid)cmd.ExecuteScalar();
...