读书人

一个比较头疼的有关问题

发布时间: 2012-09-18 16:21:42 作者: rapoo

一个比较头疼的问题。
现在在使用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)),不就可以了么

读书人网 >C#

热点推荐