Làm cách nào tôi có thể chèn vào bảng cục bộ từ một thủ tục được lưu trữ từ xa mà không tạo giao dịch phân tán? Tôi muốn chạy một thủ tục được lưu trữ trên một máy chủ từ xa và sử dụng đầu ra làm nguồn để chèn vào một bảng cục bộ.
Làm cách nào tôi có thể chèn vào bảng cục bộ từ một thủ tục được lưu trữ từ xa mà không tạo giao dịch phân tán? Tôi muốn chạy một thủ tục được lưu trữ trên một máy chủ từ xa và sử dụng đầu ra làm nguồn để chèn vào một bảng cục bộ.
Câu trả lời:
Đối với SQL Server 2008 trở lên , bạn có thể tắt các chương trình khuyến mãi cho máy chủ được liên kết. Nó nằm trên tab Thuộc tính nâng cao hoặc bạn có thể viết kịch bản như sau:
EXEC master.dbo.sp_serveroption
@server=N'YourLinkedServer',
@optname=N'remote proc transaction promotion',
@optvalue=N'false'
Đối với SQL Server 2005 , bạn có thể thêm máy chủ được liên kết OLE DB. Điều đó cho phép bạn nhập các tùy chọn chi tiết trong chuỗi kết nối.
Đây là cách cấu hình một máy chủ được liên kết như vậy. Nhấp Server Objects
, sau đó nhấp chuột phải Linked Servers
và chọn New Linked Server...
. Cấu hình máy chủ như sau:
Data Source=<server or ip>,1433;Network Library=DBMSSOCN;Initial Catalog=<database name>;Enlist=false;
Các Enlist=false
trong chuỗi kết nối nên ngăn chặn các giao dịch phân tán.