Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara menggunakan klausa OUTPUT pernyataan INSERT untuk mendapatkan nilai identitas?

Anda dapat membuat ID yang baru dimasukkan menjadi output ke konsol SSMS seperti ini:

INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')

Anda dapat menggunakan ini juga dari mis. C#, saat Anda perlu mendapatkan ID kembali ke aplikasi panggilan Anda - cukup jalankan kueri SQL dengan .ExecuteScalar() (bukan .ExecuteNonQuery() ) untuk membaca ID . yang dihasilkan kembali.

Atau jika Anda perlu mengambil ID yang baru dimasukkan di dalam T-SQL (misalnya untuk pemrosesan selanjutnya), Anda perlu membuat variabel tabel:

DECLARE @OutputTbl TABLE (ID INT)

INSERT INTO MyTable(Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl(ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333')

Dengan cara ini, Anda dapat memasukkan beberapa nilai ke dalam @OutputTbl dan melakukan pemrosesan lebih lanjut pada mereka. Anda juga dapat menggunakan tabel sementara "biasa" (#temp ) atau bahkan tabel persisten "nyata" sebagai "target keluaran" Anda di sini.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pencarian teks lengkap atas data dengan garis bawah

  2. TSQL untuk mengembalikan TIDAK atau YA, bukan TRUE atau FALSE

  3. PILIH BERBEDA pada satu kolom

  4. SQL AVG() Mengembalikan hasil yang salah untuk 3 kolom

  5. Cara Membuat Pemicu untuk Melacak Data Terakhir yang Diubah