sql >> Base de Datos >  >> RDS >> Sqlserver

Nombres de tabla totalmente calificados con SP_ExecuteSql para acceder al servidor remoto

Tendrás que hacer esto, no se puede parametrizar

....
SET @Sql = 'UPDATE ' + @server_name_param + '.dba_sandbox.dbo.SomeTable SET SomeCol=''data'''
....

Editar:hay otra forma que usé en mis días puros de DBA

EXEC sp_setnetname 'AdhocServer', @SERVER_NAME
UPDATE AdhocServer.dba_sandbox.dbo.SomeTable SET SomeCol 'data'
EXEC sp_setnetname 'AdhocServer', 'MeaninglessValue'

sp_setnetname hay desde SQL Server 2000 hasta 2008

Editar2. Permisos :

Pruebe EXECUTE AS LOGIN = 'login_name' , donde login_name es un superusuario

Realmente no he usado esto (utilizo "COMO USUARIO" para probar), así que no estoy seguro de los puntos más finos...

Edición 3:para la concurrencia, considere usar sp_getapplock y un procedimiento almacenado, o algún otro mecanismo de control de concurrencia.