使用 C# (vs2005),我需要将表从一个数据库复制到另一个数据库。两个数据库引擎都是 SQL Server 2005。对于远程数据库(源),我只有对存储过程的执行访问权限才能获取我需要在本地带来的数据。
我对本地数据库有更多的控制权,因为它由需要此远程表的本地副本的 [asp.net] 应用程序使用。我们希望它是本地的,以便于查找和与其他表连接等。
您能否向我解释一下将此数据复制到我们本地数据库的有效方法。
如果可以使事情变得更简单,可以使用与远程表相同的模式创建本地表。远程表有 9 列,其中没有一个是标识列。远程表中大约有 5400 行,并且这个数字每年大约增长 200 行。所以不是一个快速更换的桌子。
也许是 SqlBulkCopy;使用 SqlCommand.ExecuteReader 获取在调用 SqlBulkCopy.WriteToServer 时使用的读取器。这与批量插入相同,所以非常快。它应该看起来某物喜欢(未经测试);
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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)