Sql 将表从一个数据库复制到另一个连接上的数据库(ADO.NET)

Sql 将表从一个数据库复制到另一个连接上的数据库(ADO.NET),sql,vb.net,ado.net,oledb,Sql,Vb.net,Ado.net,Oledb,我正在尝试使用OleDb将数据库中的一个表复制到VB.NET中另一个连接上的另一个数据库中。如果它们在同一个连接上,我只会使用SELECT INTO,但它们不是。我有两个不同的OLEDB连接,看不到一个简单的方法来做到这一点 现在,我正试图使用OleDbDataAdapter将数据库复制到DataTable中,然后循环遍历DataTable并将每个记录一次插入目标数据库中。对于我可能要处理的大型数据库来说,这显然需要花费大量时间,而且我必须处理转义字符串、空值等 有没有更简单的方法 谢谢, 洛根

我正在尝试使用OleDb将数据库中的一个表复制到VB.NET中另一个连接上的另一个数据库中。如果它们在同一个连接上,我只会使用SELECT INTO,但它们不是。我有两个不同的OLEDB连接,看不到一个简单的方法来做到这一点

现在,我正试图使用OleDbDataAdapter将数据库复制到DataTable中,然后循环遍历DataTable并将每个记录一次插入目标数据库中。对于我可能要处理的大型数据库来说,这显然需要花费大量时间,而且我必须处理转义字符串、空值等

有没有更简单的方法

谢谢, 洛根

编辑-只是为了让这更清楚:我有两个OleDbConnection对象,一个直接链接到我的计算机(JET)上的本地.mdb文件。另一个链接到服务器上的数据库(SQLOLEDB)。我想这样做:

"SELECT * FROM fromDB INTO toDB"

但是我不能,因为
fromDB
toDB
在不同的连接上,并且OleDbCommand对象只附加到一个。我能看到的唯一方法是连接到
fromDB
,将其复制到数据表中,连接到
toDB
,并将数据表中的所有数据逐行复制到
toDB
。我想知道是否有更简单的方法来实现这一点。

如果您只是从一个复制到另一个,为什么不使用SQL来实现呢

您可以在一个数据库中创建一个同义词,该同义词指向另一个数据库(另一台服务器上)上的表、视图或存储过程。然后,您可以像插入同一数据库中的表一样插入这个同义词


如果您受限于此体系结构,一个想法是在服务器上编写一个存储过程,在一次调用中接受大量行数据。然后,它可以将行数据写入文件,以便将来进行大容量插入,也可以尝试直接插入行

这还有一个好处,就是通过与服务器的高延迟连接来加快速度


此外,如果使用参数化语句,可以避免转义字符串等。

您试图解决的问题是什么?您想知道如何以编程方式将每个表从数据库A复制到数据库B吗?您使用的是什么版本的SQL Server?对不起,我是说只有一个表。将编辑OP。您的应用程序正在将数据从SQL Server移动到Access,还是正在将访问权限推送到SQL Server?您使用的是什么版本的SQL Server?选择@@version将告诉您是否不知道。如果我使用的是SQL,我将使用SQL。。。但我不是,所以是的。这是一个更大的VB.NET项目的一小部分。请你自己-我将尝试帮助其他人。这假设SQL Server是同义词,OP没有指定此细节。好的,我希望当你向其他人提供答案时,它不仅仅是告诉他们做一些完全不同的事情,并且超出OP中给出的界限。