我正在努力解决这个问题,而我发现的例子对于我需要完成的工作来说似乎过于复杂。
我在不同服务器上的不同数据库中有两个表。我需要查看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
答案 0 :(得分:1)
EXCEPT
或NOT 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