检查表2中表1中不同服务器上的值

时间:2015-07-17 14:00:09

标签: sql-server-2008 sql-server-2012

我正在努力解决这个问题,而我发现的例子对于我需要完成的工作来说似乎过于复杂。

我在不同服务器上的不同数据库中有两个表。我需要查看Server1,Db1,table1,column2是否包含不在Server2,Db2,table1,column2中的任何值?

我不知道从哪里开始?

在下面的帮助下,这是我尝试过的,我收到错误:

The multi-part identifier "NET_TEST.dbo.Details" could not be bound.

查询:

Declare @RCaseNum nvarchar(30);
Declare @CurrentYear DateTime;
Declare @EventNumber nvarchar(30);
Declare @CaseNum nvarchar(30);
SET @EventNumber = [NET_TEST].[dbo].[Details]
SET @CaseNum = [SQLTEST10\SQLTEST10].[CASE_TEST].[dbo].Incident
SET @CurrentYear = YEAR(getdate());
SET @RCaseNum =  @CurrentYear + @EventNumber
SELECT @EventNumber
EXCEPT
SELECT @CaseNum

2 个答案:

答案 0 :(得分:1)

EXCEPTNOT EXISTS是您的最佳选择。我写了一些关于他们on this answer的文章。

EXCEPT的一个例子。

SELECT column2 FROM Db1.table1
EXCEPT
SELECT column2 FROM Db2.table1

无论如何,请注意使用NOT IN

答案 1 :(得分:0)

使用左连接是另一种选择

    select * from 
    Db1.table1 A
    left join Db2.table1 B on A.column2 = B.column2
    where B.column2 is NULL