Eu tenho um servidor vinculado e preciso executar a seguinte instrução:
INSERT INTO...EXEC linkedserver.sp @parameter
Ambos os servidores SQL Server 2008R2 SP1. Assim que executo, recebo este erro:
Msg 7391, Nível 16, Estado 2, Linha 6 A operação não pôde ser executada porque o provedor OLE DB "SQLNCLI10" para o servidor vinculado "MY.LINKED.SERVER" não pôde iniciar uma transação distribuída.
Depois de pesquisar o erro, vi que muito recomendo executar:
EXEC master.dbo.sp_serveroption
@server = N'[mylinkedserver]',
@optname = N'remote proc transaction promotion',
@optvalue = N'false'
Há alguma implicação de segurança nesta ação da qual eu deva estar ciente?
Outra opção é usar as propriedades avançadas do objeto de servidor vinculado no servidor principal:
Quando você faz
INSERT INTO...EXEC
localmente, o sql server irá honrá-lo, mas quando você usa o Linked server, o sql server tem que iniciar uma transação local e promover/escrever para uma transação distribuída.De --> Como criar uma transação autônoma no SQL Server 2008
Tanto quanto eu sei, não há nenhuma implicação de segurança.
Além disso, consulte sp_serveroption para obter mais detalhes.