การ Add Server Name เพื่อทำ Link Server ใน MSSQL

ทำการ 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.

3 Comments

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

    SET XACT_ABORT ON

    ด้วยจ้า

  2. เพิ่มเติมอีกนิดครับ 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

  3. นพ says:

    แจ่มเลยอู๋

Leave a Reply