一个比较头疼的问题。
现在在使用c#做SQL Server同步工具,使用了
Insert into table select * from [192.168.0.74].[p].[dbo].[table]语句
使用了链接服务器,现在由于表的数目多,数据库,所以,上述语句也是动态的。
现在有部分表里有些xml类型的列,导致运行上述语句的时候报:
分布式查询不支持xml数据类型。远程“[192.168.0.74].[p].[dbo].[table]”包含xml列。
请教高手,有何办法解决。
------解决方案--------------------用xquery提取出来行不行?
------解决方案--------------------
1、针对XML列:将XML列转换成varchar(max)或nvarchar(max)
2、针对XML文件:使用OPENROWSET
------解决方案--------------------你反正都用的是动态语句,那就继续拼SQL嘛。
比如针对一个表,从sys.columns中取出列名(name)、数据类型(system_type_id),看到system_type_id=241的,就在外面套上cast(colname as nvarchar(max)),不就可以了么