Apakah ada cara "sederhana" untuk melakukan ini atau saya harus melewati variabel tabel dengan sintaks "OUTPUT ... INTO"?
DECLARE @someInt int
INSERT INTO MyTable2(AIntColumn)
OUTPUT @SomeInt = Inserted.AIntColumn
VALUES(12)
sql-server
tsql
Benoittr
sumber
sumber
output
?DECLARE @InsertedIDResults TABLE (ID int); INSERT INTO MyTable (Name, Age) OUTPUT INSERTED.ID INTO @InsertedIDResults VALUES('My Name', 30); DECLARE @InsertedID int = (SELECT TOP 1 ID FROM @InsertedIDResults);
Lebih dari setahun kemudian ... jika yang Anda butuhkan adalah mendapatkan id tabel yang dibuat secara otomatis, Anda bisa saja
Kalau tidak, sepertinya Anda terjebak menggunakan tabel.
sumber
Cara kemudian tetapi masih layak disebutkan adalah bahwa Anda juga dapat menggunakan variabel untuk menghasilkan nilai dalam klausa SET dari UPDATE atau dalam bidang SELECT;
Dalam contoh di atas @ val1 memiliki nilai sebelum dan @ val2 memiliki nilai setelah walaupun saya menduga perubahan dari pemicu tidak akan di val2 jadi Anda harus pergi dengan tabel output dalam kasus itu. Untuk apa pun kecuali kasus paling sederhana, saya pikir tabel output akan lebih mudah dibaca dalam kode Anda juga.
Satu tempat ini sangat membantu adalah jika Anda ingin mengubah kolom menjadi daftar yang dipisahkan koma;
sumber
SET @val2 = NextNum = NextNum + 1
.