2016-09-21 68 views
0

我想比较两个表格,一个在UAT服务器上,另一个在现场。比较SQL Server 2014中不同服务器上的两个表格

我曾经对下面的查询使用类似的查询。

有人可以帮忙吗?我只想显示任何差异,使用EXCEPT。

:CONNECT servername 
PRINT 'live' 

SELECT * 
FROM [database].[tablename] AS pm 

go 

:CONNECT servername 
PRINT 'uat' 

SELECT * 
FROM [database].[tablename] AS pm 

go 
+0

如果您还没有准备好,添加一台服务器上的其他链接的服务器。然后,您只需使用链接的服务器进行查询。例如'从[myTable]中选择x,y,z,除了从[myLinkedServer]中选择x,y,z。[myLinkedServerDatabase]。[myLinkedServerSchema]。[myTable]' – ZLK

回答

0

看到这里OPENQUERY
OPENQUERY

,并使用它像这样

--link other server 
EXEC sp_addlinkedserver @server='10.223.224.21\servername' 
EXEC sp_addlinkedsrvlogin '10.223.224.21\servername', 'false', NULL, 
'sa','password' 

-- Fetch data from the other database server 
SELECT * 
INTO #myTempTable 
FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]') 

-- Now I can join my temp table to see the data 
SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1 
INNER JOIN #myTempTable tab2 ON tab1.ID = tab2.ID 
+0

嗨Johnine,感谢您的输入。我试过这个查询。 DB2中的部分'FROM OPENQUERY([DB2]','服务器名'是什么?我尝试了数据库和服务器的名字。'出现错误。'在sys.servers中找不到服务器。确认服务器的名称是正确的如果需要,执行存储过程sp_addlinkedserver将服务器添加到sys.servers – Camille

+0

您好,您需要使用以下命令链接其他服务器: 'EXEC sp_addlinkedserver @ server = '10 .223.224.21 \ servername' EXEC sp_addlinkedsrvlogin' 10.223.224.21 \ servername','false',NULL,'sa','password' ' – Johnine

+0

然后检查服务器是否链接。执行命令 'sp_helpserver' – Johnine