HOME > บทความจากสมาชิก > SQL Server ทำ Linked เชื่อม Database ระหว่าง Server หรือเชื่อม 2 ระหว่าง Database
SQL Server ทำ Linked เชื่อม Database ระหว่าง Server หรือเชื่อม 2 ระหว่าง Database
SQL Server ทำ Linked เชื่อม Database ระหว่าง Server หรือเชื่อม 2 ระหว่าง Database บทความนี้จะเป็นตัวอย่างการทำ Link Server หรือเชื่อมฐานข้อมูลบน SQL Server Database ระหว่าง Database ซึ่งวัตถุประสงค์ของการทำ Linked Server คือ เมื่อกต้องการเรียกใช้ข้อมูลอื่นๆ ที่อยู่คนล่ะ Database ซึ่งอาจจะอยู่ใน Server/Instance เดียวกัน หรือ อยู่คนล่ะ IP ก็สามารถที่จะใช้ Linked Server เพื่อเชื่อมต่อไปยัง Database ต่างๆ ได้
SQL Server ทำ Linked เชื่อม Database ระหว่าง Server
การทำ Link Server เราสามารถแยกปัจจุบัยที่จะต้องทำได้ออกเป็น 2 ข้อคือ
ในกรณีที่อยู่ Server/Instance เดียวกับ และ User ที่เชื่อมต่อไม่สามารถเรียกไปยัง Database อื่น ๆ ได้ จะให้ใช้การทำเป็น Link Server แทน แต่ในกรณีที่ User ที่เชื่อมต่อมีสิทธิ์ใช้งานในหลายๆ Database อยู่แล้ว ก็ไม่จำเป็นะจะต้องใช้ Link Server เพราะสามารถเรียกใช้ข้าม Database กันได้อยู่แล้ว
อยู่คนล่ะ Server/Instance หรือ IP อันนี้จำเป็นจะต้องทำ Link Server
ในตัวอย่างนี้จะยกตัวอย่างอยู่คนล่ะ Instance ซึ่ง Instance หลักคือ SQL Server 2014 และจะทำลิ้งค์ไปยัง SQL Server 2012
Instance บน SQL Server 2012
Instance บน SQL Server 2014
วิธีการสร้าง Link Server
Server Objects -> Linked Server -> New Linked Server
ตรง Link Server ให้กำหนดชื่อของ Instance และ Server type : SQL Server
ในกรณีที่ Instance อยู่ใน IP อื่น ๆ ก็สามารถกำหนดเป็น IP Address หรือ Server Name ได้
ได้ Link Server เรียบร้อยแล้ว
ซึ่งต่อไปนี้เราามารถ Query ข้อมูลจาก Server ปลายทางได้จาก
LinkedServerName.catalog.schema.object_name.
เช่น
SELECT tb1.* FROM [LOCALHOST\SQL2012].mydatabase.dbo.CUSTOMER_SUB tb1
ตัวอย่างการ SELECT ข้อมูลจาก Linked Server
จะเห็นว่า Linked Server เราสามารถทำการ SELECT ข้อมูลได้เหมือนการ SELECT จากตารางที่อยู่ใน Database เดัยวกัน ซึ่งสามารถใช้คำสั่งพวก JOIN , UNION หรืออื่น ๆ ได้ตามปกติ
SELECT tb1.* FROM [LOCALHOST\SQL2012].mydatabase.dbo.CUSTOMER_SUB tb1
UNION
SELECT tb2.* FROM CUSTOMER_MAIN tb2