我正在尝试使用SqlBulkCopy将一张SQL表中的行复制到另一张表中。
在目标表已经包含了与我正在尝试添加的主键相同的元组时,它能够很好地工作。
现在我只需要一个选项,如果目标表中已经存在该元组,则跳过该元组。
请问有人可以指点我正确的方向吗?
目前我的代码看起来像这样:
using(SqlConnection source = new SqlConnection(sourceConnectionstring))
{
source.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM MyTable");
SqlDataReader reader = cmd.ExecuteReader();
using(SqlBulkCopy bulkData = new SqlBulkCopy(destinationConnectionstring))
{
bulkData.DestinationTableName = "MyTable";
bulkData.WriteToServer(reader);
}
}
我想,有一种(可怕的)方法是创建一个仅包含目标表中不存在元组的DataTable……但是难道没有选项(或不同的类?)可以让它简单快捷吗?