我们有两台 SQL 2014 服务器,我在其中一台服务器上创建了一个链接服务器。作为我尝试运行的任务的一部分,我需要将 SQL UserID 转换为本地和链接服务器上的用户名。
在本地服务器上,我可以调用
SELECT SUSER_NAME(1)
这将返回字符串sa
有没有一种简单的方法可以SUSER_NAME
在链接服务器上运行该函数以从那里取回值?
我认为我发现的另一种选择是加入sys.server_principals
并从那里提取名称,但SUSER_NAME
似乎是一种更简洁的方法。
sp_executesql
您可以通过使用由 4 部分组成的名称在该远程服务器上执行来在该链接服务器上执行动态 SQL 。然后你只需将其分配给标记为的变量OUTPUT
:当然,这是否比 JOINing 到那个远程表“更干净”是值得商榷的,因为每种方法都有利弊。