Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

W pełni kwalifikowane nazwy tabel z SP_ExecuteSql w celu uzyskania dostępu do zdalnego serwera

Musisz to zrobić, nie można tego sparametryzować

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

Edycja:jest inny sposób, z którego korzystałem w moich czystych dniach DBA

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

sp_setnetname jest tam od SQL Server 2000 do 2008

Edytuj2. Uprawnienia :

Wypróbuj WYKONAJ JAKO ZALOGUJ ='nazwa_logowania' , gdzie nazwa_logowania to superużytkownik

Tak naprawdę tego nie używałem (używam "AS USER" do testowania), więc nie jestem pewien co do drobniejszych punktów...

Edycja 3:w przypadku współbieżności rozważ użycie sp_getapplock i procedury składowanej lub innego mechanizmu kontroli współbieżności.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Potrzebujesz kolumny daty i godziny w SQL Server, która automatycznie aktualizuje się po zmodyfikowaniu rekordu

  2. Jak lepiej zduplikować zestaw danych w SQL Server

  3. ASIN() Przykłady w SQL Server

  4. Jak wybrać zagnieżdżony JSON w SQL Server za pomocą OPENJSON

  5. Główny podmiot serwera nie może uzyskać dostępu do bazy danych w bieżącym kontekście zabezpieczeń w SQL Server MS 2012