【发布时间】:2017-12-01 10:42:36
【问题描述】:
我有一个 Web 应用程序的 SQL Server 数据库,我的要求是从一个源数据库中读取 2-3 个表数据并将数据插入到目标数据库中。我的输入将是一个名称和一个 ID,基于我必须从源数据库中读取数据,并且我必须验证目标数据库中是否已经存在类似的名称。我必须通过 C# windows 应用程序或 Web 应用程序来执行此操作。
到目前为止,在我的研究中,人们推荐使用 SqlBulkCopy 或 SSIS 包,我尝试使用以下代码传输一个表数据。
using (SqlConnection connSource = new SqlConnection(csSource))
using (SqlCommand cmd = connSource.CreateCommand())
using (SqlBulkCopy bcp = new SqlBulkCopy(csDest))
{
bcp.DestinationTableName = "SomeTable";
cmd.CommandText = "myproc";
cmd.CommandType = CommandType.StoredProcedure;
connSource.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
bcp.WriteToServer(reader);
}
}
我面临的问题是,我必须复制 2 个表数据,基于表 1,表 2 值如 ID(主键)更改,我必须在 SqlDataReader 中更新它,所以为了得到这个新 ID 在目标数据库中,我必须先插入一个表数据,然后获取 ID,然后在我的阅读器对象中更新这个 ID,然后再执行另一个 SqlBulkCopy,这看起来不是理想的方法,是还有其他的吗?
【问题讨论】:
-
能否指定两个数据库是否在同一个 SQL 实例上?
-
No 不在同一个实例中
标签: sql sql-server c#-4.0