要将数据从一个数据库复制到具有相同模式的不同服务器中的另一个数据库,我计划使用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来节省内存,跳过数据表 –