2016-09-21 2 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

Если вы еще не сделали, добавьте один из серверов в качестве связанного сервера на другой. Затем вы просто сделаете запрос с помощью связанного сервера. например 'select x, y, z из [myTable], кроме select x, y, z из [myLinkedServer]. [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

Привет, Джонни, спасибо за ваш вклад. Я пробовал этот запрос. Что я ввел в часть DB2 из 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

затем проверить, был ли сервер связан .execute команда ' sp_helpserver' – Johnine

Смежные вопросы