1.ทำการ LINK SERVER ให้ Login เข้า Server ที่เป็น Master ครับ
2.ใส่ชื่อ Server ที่ต้องการทำ Link เข้าไป
3.หากมันขึ้น Error ก็ไม่ต้องตกใจ เพราะมันยังไม่ใส่ User และ Pass
4.ก็จัดการใส่ User และ Pass ให้มันซะ
5.ที่ Server Option-->RPC_OUT ให้เปลี่ยนเป็น True ซะด้วย
6.ทำ Link SERVER ของตัว Master ด้วยครับจะ Link กี่ Server ก็ สร้าง Link ทั้งหมดครับ ตามวิธีที่ 1-6 เลยครับ
7.เวลา Connect ก็ Connect ธรรมดานี่แหละครับ
Code (PHP)
<?
$Connect1 = mssql_connect("192.168.0.4","sa","xxxx") or die("Error Connect to DB");
$DB1 = mssql_select_db("ims_data");
?>
และเวลา SELECT ก็ ตามนี้ครับ
Code (PHP)
$strSQL = "SELECT * FROM [192.168.0.20].UFDATA_009_2012.dbo.Inventory a
LEFT JOIN [192.168.0.4].ims_data.dbo.pd_inv b
ON (a.cInvCode = b.pd_cod collate Thai_CI_AI)
WHERE b.pd_cod LIKE 'AB%'";
$objQuery = mssql_query($strSQL,$Connect1) or die ("Error Query [".$strSQL."]");
Warning: mssql_query() [function.mssql-query]: message: Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options to be set for the connection. This ensures consistent query semantics. Enable these options and then reissue your query. (severity 16) in
ก็ไม่ต้องตก กะใจ ครับ ฝรั่งเขาให้ใส่ function นี้เข้าไปด้วยเพื่อ เปิดการทำงาน SET ANSI_NULLS และ SET ANSI_WARNINGS
(ผมก็ไม่รู้มันคืออะไร อิๆ)
Code (PHP)
$result = mssql_query("SET ANSI_NULLS ON") or die(mssql_get_last_message());
$result = mssql_query("SET ANSI_WARNINGS ON") or die(mssql_get_last_message());
หากไม่ผิดพลาดประการใด ก็จะได้ Query ข้าม Server สมใจ ครับ
ปล.วิธีนี้ ดีอย่างไร มันเจียมมาก....เพราะว่า มันไม่ติด Fire Wall แต่อย่างใด.....ฮุๆๆๆๆ
ไม่ทราบว่าท่านใดมีปัญหาอย่างผมบ้าง SQL 2005 Link กับ SQL 2008
ทำตามคำแนะนำแล้วเจอปัญหาดังภาพ
ตอนนี้ทำไ้ด้แล้วครับไปที่ Security คลิกเลือกด้านล่างตรงคำว่า
Be made using this security context :
แล้วใส่ User และ Password ของ Server ปลายทาง ที่ช่อง
Remote Login :
With Password :
ตามภาพ
แต่ยังไม่ได้ลองดูว่าจะติดอะไรอีกหรือไม่ เบื้องต้น Test Connect ผ่านครับเปิดดู DataBase ได้