sql >> Database >  >> RDS >> Sqlserver

Volledig gekwalificeerde tabelnamen met SP_ExecuteSql voor toegang tot externe server

U moet dit doen, het kan niet worden geparametriseerd

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

Bewerken:er is een andere manier die ik in mijn pure DBA-dagen gebruikte

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

sp_setnetname is er van SQL Server 2000 tot 2008

Bewerken2. Machtigingen :

Probeer EXECUTE AS LOGIN = 'login_name' , waarbij login_name een supergebruiker is

Ik heb dit niet echt gebruikt (ik gebruik "AS USER" om te testen), dus ik weet niet zeker hoe het precies zit...

Bewerken 3:voor gelijktijdigheid, overweeg om sp_getapplock en een opgeslagen procedure te gebruiken, of een ander mechanisme voor gelijktijdigheidscontrole.



  1. Hoe kan ik een sessie instellen in de codeigniter 3-database?

  2. kolomwaarde in een enkele rij

  3. Query voor het selecteren van meerdere gegevens samen met gemiddelde waarden tussen een bepaalde tijd met Postgres

  4. Fout met MySQL CREATE TABLE-query