Anda dapat menggunakan fungsionalitas OUTPUT untuk mengembalikan nilai default kembali ke parameter.
CREATE TABLE MyTable
(
MyPK UNIQUEIDENTIFIER DEFAULT NEWID(),
MyColumn1 NVARCHAR(100),
MyColumn2 NVARCHAR(100)
)
DECLARE @myNewPKTable TABLE (myNewPK UNIQUEIDENTIFIER)
INSERT INTO
MyTable
(
MyColumn1,
MyColumn2
)
OUTPUT INSERTED.MyPK INTO @myNewPKTable
VALUES
(
'MyValue1',
'MyValue2'
)
SELECT * FROM @myNewPKTable
Saya harus mengatakan, berhati-hatilah menggunakan pengidentifikasi unik sebagai kunci utama. Pengindeksan pada GUID adalah kinerja yang sangat buruk karena setiap panduan yang baru dibuat harus dimasukkan ke tengah indeks dan jarang ditambahkan di akhir. Ada fungsionalitas baru di SQL2005 untuk NewSequentialId(). Jika ketidakjelasan tidak diperlukan dengan Panduan Anda, maka ini adalah alternatif yang memungkinkan.