簡體   English   中英

T-sql比較鏈接服務器查詢和本地查詢的結果

[英]T-sql comparing results of linked server query with local query

我正在嘗試將鏈接服務器查詢的結果與本地查詢進行比較。 我要做的是找出一台服務器上存在什么登錄名,而另一台服務器上不存在。 只是Windows身份驗證帳戶現在是可以的。

我目前的查詢是

Select name 
from [linkedServer].master.[sys].[server_principals]  
Where name not in ('Select name from sys.server_principals')

我得到的只是鏈接服務器查詢的結果,而忽略了。 如何比較兩者的結果?

首先,使用not exists 其次,我認為您的單引號是錯誤的:

select sp.name
from [linkedServer].master.[sys].[server_principals] sp
where not exists (select 1
                  from sys.server_principals sp2
                  where sp2.name = sp.name
                 );

我強烈建議您養成使用子查詢not exists而不是not in使用in的習慣,因為如果子查詢中的任何值為NULL ,則not in返回任何行。 這通常不是可取的行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM