簡體   English   中英

如何批量插入兩個具有身份關系的數據表

[英]How do I bulk insert two datatables that have an Identity relationship

我正在使用SQLBulkCopy,以偽代碼執行此操作:

  • 制作新的員工數據表
  • 制作新的EmployeeAddress數據表
  • 填充employee表,但不指定employeeId為身份
  • 填充EmployeeAddress數據表,但其中包含一個employeeId字段
  • 通過執行兩次並更改表名稱,將兩個數據表都寫入數據庫:

using (var bulk = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity & SqlBulkCopyOptions.KeepNulls))
    {
        bulk.BatchSize = 25;
        bulk.DestinationTableName = "Employee";
        bulk.WriteToServer(employeeDataTable);
    }       

如何在第二個數據庫中指定employeeId,以使其與第一次插入的員工正確對齊? 讀取數據的方式是我同時讀取了員工和地址,因此插入所有員工然后返回並插入所有地址有點麻煩。

我想知道是否有一個優雅的解決方案?

我不太確定這有多優雅,我想這取決於您。 我假設您有一個唯一字段或員工數據中唯一的字段組合。

如果在服務器上創建登台表,則可以批量插入包含所有員工數據以及員工地址信息的數據。

在登台表中,插入員工數據。 然后從登台表中加入employee表(以獲取新分配的ID)並插入雇員地址數據。

最后刪除登台表。

一切仍以設置為導向,因此您應該具有良好的性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM