项目中需要用到表中一些数据,需要跨数据库访问。表中的列类型为xml就会出报: 分布式查询不支持 Xml 数据类型。
我的解决办法就是创建一个表,这个表跟你需要查的表的结构和原表除了xml列换成ncahr()列其他不变。将你查出的数据先插入新建表中,跨服务使用新建的表来满足你的需求...
具体sql如下:
--创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 'exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 '
--以后不再使用时删除链接服务器
exec sp_dropserver 'ITSV ', 'droplogins '
--之前表结构
CREATE TABLE [dbo].[tblWorkFlowActivityDefinition1](
[ActivityId] [uniqueidentifier] NOT NULL,
[ExpandXml] [xml] NULL,--[xml] NULL,
[Marker] [varchar](32) NULL,
[RoleId] [uniqueidentifier] NULL,
[Url] [varchar](1024) NULL,
[PhaseId] [uniqueidentifier] NULL,
[TaskId] [uniqueidentifier] NULL,
[Ordinal] [int] NULL
)
--新建表结构
CREATE TABLE [dbo].[tblWorkFlowActivityDefinition1](
[ActivityId] [uniqueidentifier] NOT NULL,
[ExpandXml] [varchar](1024) NULL,--[xml] NULL,
[Marker] [varchar](32) NULL,
[RoleId] [uniqueidentifier] NULL,
[Url] [varchar](1024) NULL,
[PhaseId] [uniqueidentifier] NULL,
[TaskId] [uniqueidentifier] NULL,
[Ordinal] [int] NULL
)
跨服务访问使用
ITSV.ITMS.dbo.tblWorkFlowActivityDefinition1
把你需要的数据放在新表
问题解决了