单个查询中的多个连接字符串

时间:2016-09-21 16:16:03

标签: sql vb.net connection-string

在VB中,如何将来自单独技术的两个语句连接到单个记录集中?说我有两个陈述:

Select name from server1.dbo.table1 where attribute = "something"
select name from server2.dbo.table2 where attribute = "something else"

我可以运行这些语句中的每一个。假设table1是一个平面文件,而table2来自SQL Server(或者其他什么,无所谓,希望如此)。我想要发生的是将这些加入到table3中,这将在第三种技术中创建(碰巧是SAP,但我们忽略了这个问题)。我想要一个像这样的声明:

select table1.name into server3.dbo.table3 from table1 join table2 on table1.name=table2.name

我可以在VB中使用三个单独的连接字符串吗?

对于这个项目,我可以使用vb.net,vbscript,甚至vba / vb6,无论如何。如果我不得不离开VB,它将使第三种技术的连接变得更加困难,但并非不可能。另一方面,我是数据访问接口(ado / dao / rdo / ODBC / OLEDB /等)不可知。

2 个答案:

答案 0 :(得分:1)

我相信你不能直接这样做。通常,我在这些情况下做的是在其中一个连接上创建一个临时表,并从其上的另一个连接中导入所有数据。然后我执行连接并将数据移动到第三个连接。

140000

答案 1 :(得分:1)

  

我可以在VB中使用三个单独的连接字符串吗?

不,你不能。

因为当您运行Query(几乎每种语言)时,您实际上将一个String传递给驱动程序,驱动程序本身将查询实际的数据库。这就是ADO,OLEDB等的目的。

因此,在单个查询中,这是不可能的。

但是,您可以填写两个不同的数据集,每个数据集对应一种技术。

完成后,您可以创建第三个数据集,它将是前两个数据集的混合。您可以“手动”构建第三个数据集。

如果你只需要从数据库中读取(SELECT),这是没关系的。

如果你想在那里写,你必须向第一个数据集报告对第三个数据集所做的任何更改,然后将这些更改提交到数据库中。