Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tên bảng hoàn toàn đủ điều kiện với SP_ExecuteSql để truy cập máy chủ từ xa

Bạn sẽ phải làm điều này, nó không thể được tham số hóa

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

Chỉnh sửa:Có một cách khác mà tôi đã sử dụng trong những ngày DBA thuần túy của mình

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

sp_setnetname có từ SQL Server 2000 đến 2008

Chỉnh sửa2. Quyền :

Hãy thử EXECUTE AS LOGIN = 'login_name' , nơi login_name là siêu người dùng

Tôi chưa thực sự sử dụng điều này (tôi sử dụng "AS USER" để thử nghiệm), vì vậy không chắc chắn về các điểm tốt hơn ...

Chỉnh sửa 3:đối với đồng thời, hãy cân nhắc sử dụng sp_getapplock và một thủ tục được lưu trữ hoặc một số cơ chế kiểm soát đồng thời khác.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểm tra xem bảng có chứa hàng hay không sql server 2005

  2. Chèn hơn 1000 hàng từ Excel vào SQLServer

  3. Trạng thái HTTP 500 - Môi trường thời gian chạy Java (JRE) phiên bản 1.7 không được trình điều khiển này hỗ trợ

  4. Cách tạo Ràng buộc khóa ngoại với CASCADE BẬT CẬP NHẬT trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 79

  5. Phương pháp phân trang hiệu quả thông qua các tập kết quả rất lớn trong SQL Server 2005 là gì?