Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Có thể lấy lại các ID PrimaryKey sau một SQL BulkCopy?

Trong trường hợp đó, tôi sẽ sử dụng SqlBulkCopy để chèn vào giai đoạn bảng (tức là một bảng trông giống như dữ liệu tôi muốn nhập, nhưng không phải là một phần của các bảng giao dịch chính), và sau đó tại DB đến INSERT / SELECT để chuyển dữ liệu vào bảng thực đầu tiên.

Bây giờ tôi có hai sự lựa chọn tùy thuộc vào phiên bản máy chủ; Tôi có thể thực hiện INSERT thứ hai / SELECT sang bảng thực thứ hai hoặc tôi có thể sử dụng INSERT / OUTPUT để thực hiện chèn thứ hai, sử dụng các hàng nhận dạng từ bảng.

Ví dụ:

     -- 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. Kích thước tối đa cho một truy vấn SQL Server? Mệnh đề IN? Có một phương pháp tiếp cận tốt hơn không

  2. Mối quan hệ giữa hai thứ nguyên trong SSAS

  3. Có nên cấp quyền CONTROL cho một Thủ tục đã Lưu trữ trong SQL Server 2005 không?

  4. SQL Server 2017:Nhập dữ liệu CSV từ Linux sang Salesforce bằng SSIS

  5. trùng lặp vi phạm giá trị null trên ràng buộc UNIQUE KEY trong Mssql