Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Напълно квалифицирани имена на таблици със SP_ExecuteSql за достъп до отдалечен сървър

Ще трябва да направите това, не може да се параметризира

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

Редактиране:Има друг начин, който използвах в моите чисти дни на DBA

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

sp_setnetname има ли от SQL Server 2000 до 2008

Редактиране2. Разрешения :

Опитайте EXECUTE AS LOGIN ='login_name' , където login_name е суперпотребител

Не съм използвал наистина това (използвам „КАТО ПОТРЕБИТЕЛ“ за тестване), така че не съм сигурен за по-фините точки...

Редактиране 3:за паралелност обмислете използването на sp_getapplock и съхранена процедура или някакъв друг механизъм за контрол на паралелността.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Персонализирано форматиране на дата/час в SQL Server

  2. трябва дата във формат yyyy-mm в mssql

  3. Коя е най-ефективната/най-добрата практика за Upsert 5000+ реда без Merge в SQL Server?

  4. Какво е скаларен UDF в SQL Server?

  5. Как да се ПРИСЪЕДИНЯ към трета таблица в моя SQL израз, който връща COUNT, без да загубя 0 броя елементи?