پست‌ها

نمایش پست‌ها از مه, ۲۰۱۱

كار كردن با نوع Xml در linked server

هنگام كار كردن با Linked Server اگر جدول شما شامل ستوني از جنس Xml باشه كوئري زير SELECT T.ID , T.Name FROM [10.0.1.3].RemoteDatabase.[dbo].[Tbl_Person_Remote] AS T INNER JOIN LocalDatabase.[dbo].[Tbl_Person_Local] ON T.ID = LocalDatabase.[dbo].[Tbl_Person_Local].ID باعث خطاي زير ميشه Xml data type is not supported in distributed queries. براي رفع اين مشكل 2 راه  وجود داره   1-ساختن يك View در سرور ريموت كه شامل اون ستون Xml نباشه   2-استفاده از تابع OPENQUERY SELECT T.ID , T.NAME FROM OPENQUERY([10.0.1.3] , 'SELECT T.ID ,T.Name FROM RemoteDatabase.[dbo].[Tbl_Person_Remote]') AS T INNER JOIN LocalDatabase.[dbo].[Tbl_Person_Local] ON T.ID = LocalDatabase.[dbo].[Tbl_Person_Local].ID توجه كنيد من تو Select ام اون ستوني رو كه از جنس Xml هست ندارم در صورت نياز بايد اون ستون رو Cast يا Convert كنيد به NVARCHAR(max) مشكل ديگه اي كه ممكنه تو كوئري هاي از اين دست به اون بر بخوريد (Distributed Queries)  يكي