sql >> Databasteknik >  >> RDS >> Sqlserver

Fullständigt kvalificerade tabellnamn med SP_ExecuteSql för åtkomst till fjärrserver

Du måste göra detta, det kan inte parametreras

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

Edit:Det finns ett annat sätt som jag använde under mina rena DBA-dagar

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

sp_setnetname finns där från SQL Server 2000 till 2008

Redigera 2. Behörigheter :

Testa UTÖVER SOM LOGGA IN ='login_name' , där login_name är en superanvändare

Jag har inte riktigt använt det här (jag använder "SOM ANVÄNDARE" för att testa), så jag är inte säker på finessen...

Edit 3:för samtidighet, överväg att använda sp_getapplock och en lagrad procedur, eller någon annan kontrollmekanism för samtidighet.



  1. Kan inte ansluta till MySQL-serverfel 111

  2. Visar dubbletter av radnummer

  3. Kan inte spara byte[]-arraydata till databasen i C#. Det sparar 0x

  4. Använd tidsstämpel (eller datumtid) som en del av primärnyckeln (eller en del av klustrade index)