我正在尝试将链接服务器查询的结果与本地查询进行比较。我尝试做的是找出一台服务器上存在哪些登录而不是另一台服务器上存在的登录。只是windows auth帐户现在还可以。
我当前的查询是
Select name
from [linkedServer].master.[sys].[server_principals]
Where name not in ('Select name from sys.server_principals')
我得到的是链接服务器查询的结果,只有忽略的地方。我该如何比较两者的结果?
答案 0 :(得分:0)
首先,使用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
的习惯,因为not in
如果任何值不返回任何行子查询是NULL
。这通常不是理想的行为。