要將數據從一個數據庫複製到具有相同模式的不同服務器中的另一個數據庫,我計劃使用C sharp庫中的SqlBulkCopy類。插入記錄時,SqlBulkCopy是否將保持與數據表中相同的順序?SqlBulkCopy插入順序
例如:id是標識列。
Server1上,DB1
TableA
id name
1 name10
2 name20
3 name30
4 name40
Server2上,DB1
TableA
id name
1 name1
2 name2
3 name3
4 name4
..........
..........
5000 name22
5001 name33
- 第一步:
var dt = select * from server1.dbo.TableA order by id;
- 第二步:SQL批量複製到服務器2
bulkCopy.WriteToServer(dt);
- 第三步:
var resultDt = select top 4 id from server2.dbo.TableA order by id desc.
既然我們知道了我們進入的記錄數我正在使用「前4名」。 - 第四步:
resultDt.DefaultView.Sort = "id asc";
問: ID是否在resultDt將代表ID在DT的所有行?即,。
5002 from server2 = 1 from server1
5003 from server2 = 2 from server1
5004 from server2 = 3 from server1
5005 from server2 = 4 from server1
注意:只是爲了舉例,我給了更少的記錄。實際表格包含數千條記錄。
與您的問題沒有關係,但是您可以通過將步驟1中的IDataReader饋送到步驟2中的WriteToServer來節省內存,跳過數據表 –