sql >> Databáze >  >> RDS >> Sqlserver

Plně kvalifikované názvy tabulek s SP_ExecuteSql pro přístup ke vzdálenému serveru

Budete to muset udělat, nelze to parametrizovat

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

Edit:Existuje další způsob, který jsem používal ve svých čistých dnech DBA

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

sp_setnetname existuje od SQL Server 2000 do 2008

Upravit2. Oprávnění :

Zkuste EXECUTE AS LOGIN = 'login_name' , kde přihlašovací_jméno je superuživatel

Ve skutečnosti jsem to nepoužil (používám pro testování "AS USER"), takže si nejsem jistý jemnějšími body...

Úprava 3:pro souběžnost zvažte použití sp_getapplock a uložené procedury nebo jiného mechanismu kontroly souběžnosti.



  1. Jak implementovat editaci Master/Detail záznamů?

  2. Manipulace s daty a časovými razítky MySQL v Javě

  3. Detekce intervalů anomálií pomocí SQL

  4. Ruby / Rails pole řetězců pro vložení PostgreSQL