با سلام و احترام؛ ضمن سپاس از نوشتن این مطلب، نکات تکمیلی زیر برای خوانندگان ارائه میگردد:
پس از ایجاد Linked Server به طریقی که در مطلب فوق بدان اشاره گردید، به دو صورت میتوان به اجرای دستورات در Server دیگر پرداخت. به شکل Distributed Query و یا استفاده از تابع ()OPENQUERY .
برای مثال دو SQL Instance به نامهای SQL1 و SQL2 موجود است که قصد داریم عملیاتی را از SQL2 با استفاده از امکان Distributed Query و OpenQuery در SQL1 انجام دهیم، برای مثال:
در استفاده از OpenQuery باید جانب احتیاط را رعایت نمود، چنانچه قصد اجرای دستورات ساده ای را در Remote Server دارید، توصیه میشود از Distributed Query استفاده شود و اگر دستورات پیچیده و محاسباتی هستند استفاده از OPENQUERY هزینه کمتری دارد. همچنین در نظر داشته باشید چنانچه در دستورات مربوط به جدولی ستونی با دیتا تایپ XML وجود داشت قادر به اجرای دستورات به هر دو شکل نخواهید بود، در واقع کوئریهای توزیع شده این مورد را پشتیبانی نمیکنند. برای مثال پس از اجرای دستورات زیر با پیغام خطا زیر مواجه میشوید: «Xml data type is not supported in distributed queries»
همچنین در نظر داشته باشید چنانچه در دستورات مربوط به جدولی ستونی با دیتا
تایپ CLR وجود داشت قادر به اجرای دستورات به شکل OpenQuery خواهید بود ولی در صورت استفاده از Distributed Query با خطایی مواجه میشوید با این پیغام «Objects exposing columns with CLR types are not allowed in distributed queries»
برای کسب اطلاعات بیشتر به لینک زیر مراجعه فرمائید:
پس از ایجاد Linked Server به طریقی که در مطلب فوق بدان اشاره گردید، به دو صورت میتوان به اجرای دستورات در Server دیگر پرداخت. به شکل Distributed Query و یا استفاده از تابع ()OPENQUERY .
برای مثال دو SQL Instance به نامهای SQL1 و SQL2 موجود است که قصد داریم عملیاتی را از SQL2 با استفاده از امکان Distributed Query و OpenQuery در SQL1 انجام دهیم، برای مثال:
:Distributed Query
SELECT * FROM [SQL2].[test].[dbo].[emp]
:OPENQUERY
SELECT * from OPENQUERY([SQL2], 'SELECT * FROM [test].[dbo].[emp]')
SELECT * FROM [نام Linked Server].[AdventureWorks].[Person].[Person] GO SELECT * FROM OPENQUERY([نام Linked Server ],'SELECT * FROM [AdventureWorks].[Person].[Person]')
SELECT * FROM [نام Linked Server] .[AdventureWorks].[Person].[Address] GO SELECT * FROM OPENQUERY([نام Linked Server] ,'SELECT * FROM [AdventureWorks].[Person].[Address]')