Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQLBulkCopy查询_C#_Oracle_Sql Server 2008_Sql Server 2000_Sqlbulkcopy - Fatal编程技术网

C# SQLBulkCopy查询

C# SQLBulkCopy查询,c#,oracle,sql-server-2008,sql-server-2000,sqlbulkcopy,C#,Oracle,Sql Server 2008,Sql Server 2000,Sqlbulkcopy,因此,我编写了一个自定义数据表,它是来自多个服务器的多个表聚合的结果。我从Oracle8.1x中的两个不同表中获取数据,从SQLServer2000中获取更多数据,进行一些计算,并将结果放在SQLServer2008中的一个新目标表中。从测试中可以看出,最初的结果很好,数据计算正确。当我编写C#代码来完成这一切时,我别无选择,只能使用Oracle和SQL 2000的OleDb连接。但是在目标服务器上,我可以在2008上使用SQLBulkCopy。SQL批量复制工作得很好,程序运行速度也相当快。但

因此,我编写了一个自定义数据表,它是来自多个服务器的多个表聚合的结果。我从Oracle8.1x中的两个不同表中获取数据,从SQLServer2000中获取更多数据,进行一些计算,并将结果放在SQLServer2008中的一个新目标表中。从测试中可以看出,最初的结果很好,数据计算正确。当我编写C#代码来完成这一切时,我别无选择,只能使用Oracle和SQL 2000的OleDb连接。但是在目标服务器上,我可以在2008上使用SQLBulkCopy。SQL批量复制工作得很好,程序运行速度也相当快。但是,由于我的表看起来很棒,他们希望我使用我的代码将目标放回SQL 2000 server

问题是我不确定SQLBulkCopy是否能在SQL2000上工作,因为我不能使用SQLConnections。我一直在试图找到一个OleDb版本的大容量拷贝,它可以在C#中工作,但到目前为止,我所能做的就是 foreach(destination.Rows()中的DataRow行) { /*一次插入一行*/ } 这是非常缓慢的,因为有超过200000行和多个列(性能下降了相当多)

所以我的问题是,SQLBulkCopy是否可以与SQL 2000一起工作,如果不能,那么是否有OleDb连接版本,或者我是否别无选择,只能使用较慢的一行一行的方法。从现在起6个月后,他们确实希望它转到SQL 2012,但现在他们需要在SQL server 2000上使用它


感谢您提供的帮助或提示。

看来使用SQLBulkCopy无法与SQL 2000配合使用,但您可以尝试只编写一个文本文件,然后使用bcp将其插入。它可能更快,也可能不会更快。您还可以在DTS中使用大容量复制。sqlbulkcopy不适用于SQL2000和任何其他数据库,如oracle、access或excel作为目标。作为目标,您只能使用SQL 2005或更高版本。然而,对于源代码,您可以使用它