Temos dois servidores SQL 2014, e criei um Linked Server de um deles para o outro. Como parte de uma tarefa que estou tentando executar, preciso converter um SQL UserID em um nome de usuário no servidor local e vinculado.
No servidor local, posso apenas ligar
SELECT SUSER_NAME(1)
que retornará a stringsa
Existe uma maneira fácil de executar a função SUSER_NAME
no servidor vinculado para obter um valor de lá?
A outra alternativa que acho que encontrei é fazer uma junção sys.server_principals
e retirar o nome de lá, mas SUSER_NAME
parece uma abordagem mais limpa.
Você pode executar o SQL dinâmico nesse servidor vinculado executando
sp_executesql
nesse servidor remoto usando o nome de 4 partes. Então você apenas atribui isso a uma variável marcada comoOUTPUT
:Obviamente, é discutível se isso é "mais limpo" do que JOINing para essa tabela remota, pois há prós e contras em cada abordagem.