WP Remix
Nop Pinyowanichaka | ก้าวสั้นๆ ในวันเบาๆ ของผม
11
Feb

ทำการ Add Server ด้วย System Store Procedure ก่อน ด้วยคำสั่ง

use Master

EXEC sp_addlinkedserver
   @server = servername ,
   @provider = ‘MSDASQL’,
   @provstr = ‘DRIVER={SQL Server};SERVER=servername;UID=user;PWD=password;’

หลังจากนั้น ก็รัน SP เพื่อ ปรับ Config Data Access

EXEC sp_serveroption ’178.55.1.3′, ‘data access’, ‘TRUE’

ถ้าไม่รันคำสั่งนี้ จะขึ้น Error อันนี้

servername is not configured for DATA ACCESS.

เท่านี้เราก็สามารถเรียก Table ของ MSSQL ข้าม Server ได้แล้ว

เช่นถ้าต้องการเรียก Table ABC บน Database ADatabase ที่อยู่ใน AServer ก้อจะเรียกดังนี้

select * from [Aserver].ADatabase.dbo.ABC เป็นต้น

Powered by ScribeFire.

Category : MSSQL

Comments

แล้วก็ถ้าจะ Begin Tran gg อะไรข้าม SERVER ต้อง

SET XACT_ABORT ON

ด้วยจ้า

เพิ่มเติมอีกนิดครับ Server ตัวที่เรา Remote เข้าไปเพื่อใช้งาน Begin Transaction นั้นต้องเปิดการทำงานของ MSDTC ด้วยนะครับ ไม่งั้นได้ Error ตามนี้

The operation could not be performed because the OLE DB provider ‘SQLOLEDB’ was unable to begin a distributed transaction. [OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ] OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTransaction returned 0x8004d00a].

โดยสามารถเข้าไปอ่านวิธีการ setup MSDTC ได้ตาม link นี้ครับ

http://support.microsoft.com/kb/839279

นพ Feb 10, 2009

แจ่มเลยอู๋

เม้นท์กันซะหน่อย