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

Mungkinkah mendapatkan ID PrimaryKey kembali setelah SQL BulkCopy?

Dalam skenario itu, saya akan menggunakan SqlBulkCopy untuk dimasukkan ke dalam pementasan tabel (yaitu yang terlihat seperti data yang ingin saya impor, tetapi bukan bagian dari tabel transaksional utama), dan kemudian di DB ke INSERT /SELECT untuk memindahkan data ke tabel nyata pertama.

Sekarang saya memiliki dua pilihan tergantung pada versi server; Saya bisa melakukan INSERT kedua /SELECT ke tabel nyata kedua, atau saya bisa menggunakan INSERT /OUTPUT klausa untuk melakukan penyisipan kedua, menggunakan baris identitas dari tabel.

Misalnya:

     -- dummy schema
     CREATE TABLE TMP (data varchar(max))
     CREATE TABLE [Table1] (id int not null identity(1,1), data varchar(max))
     CREATE TABLE [Table2] (id int not null identity(1,1), id1 int not null, data varchar(max))

     -- imagine this is the SqlBulkCopy
     INSERT TMP VALUES('abc')
     INSERT TMP VALUES('def')
     INSERT TMP VALUES('ghi')

     -- now push into the real tables
     INSERT [Table1]
     OUTPUT INSERTED.id, INSERTED.data INTO [Table2](id1,data)
     SELECT data FROM TMP


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang terjadi pada ID kunci utama ketika melewati batas?

  2. Cara membuat Pintasan Kustom di SQL Server Management Studio ( SSMS) - Tutorial SQL Server / TSQL Bagian 10

  3. Perbedaan Antara Persistent Security Info Dan Integrated Security?

  4. Recordset Ditutup Setelah Eksekusi Prosedur Tersimpan

  5. Bergabung dengan beberapa tabel di SQL