我需要连接位于不同服务器上的某些表中的数据。我没有服务器的管理员权限所以我不能创建链接服务器,这是每次有人询问时的立即响应。我想我会尝试创建几个临时表,然后加入那些,但是虽然我能够成功创建#temp表并使用一些WHERE子句来减少表中的数据量,这是一个奖励,我可以'弄清楚如何加入这两者。我正在使用SQL Server Management Studio,似乎给定的SQL查询无法一次“看到”两个临时表。临时表是否仍存储在从中收集数据的服务器上?我的印象是他们都存储在一些我可以同时访问的临时数据库中。
首先我做了
SELECT ID
,A
,B
,C
INTO ##Temp1
FROM [DB1].[dbo].[Table1]
WHERE ID IS NOT NULL
然后在另一个窗口我做了
SELECT A_ID
,Q
,R
INTO ##Temp2
FROM [DB2].[dbo].[Table2]
但是我试图加入这两个
SELECT A_ID
,Q
,R
,A
,B
,C
FROM ##Temp2 AS TableA
LEFT JOIN ##Temp1 as TableB
ON TableA.A_ID = TableB.ID
我收到了错误
Invalid object name '##Temp1'.
这是我第一次尝试这样的事情,我觉得我在这里错过了一些非常简单的东西,但是我无法在所有搜索中找到任何东西。 :/
答案 0 :(得分:0)
此处至少有五个选项,并且所有这些选项都不适用于“普通”用户:
或
或
或
或
...
如果可以在两台服务器上创建两个相同的表,则可以使用CMS(中央管理服务器)在两台服务器上同时运行查询。可以将合并结果插入某个表中,然后进行处理。