Bre*_*ski 10 c# sql-server ado.net
使用C#(vs2005)我需要将一个表从一个数据库复制到另一个数据库.两个数据库引擎都是SQL Server 2005.对于远程数据库,源代码,我只对存储过程具有执行权限,以获取本地需要的数据.
本地数据库我有更多的控制权,因为[asp.net]应用程序需要这个远程表的本地副本.我们希望它本地更容易查找和连接其他表等.
能否请您向我解释一种将此数据复制到本地数据库的有效方法.
如果使事情更简单,则可以使用与远程表相同的模式创建本地表.远程表有9列,其中没有一列是标识列.远程表中大约有5400行,每年增加约200行.所以不是一个快速变化的表.
Mar*_*ell 12
也许是SqlBulkCopy; 使用SqlCommand.ExecuteReader获取在调用SqlBulkCopy.WriteToServer时使用的阅读器.这与bulk-insert相同,所以非常快.它应该看起来什么样(未经测试);
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);
}
}
Run Code Online (Sandbox Code Playgroud)