我有一个表,其中包含一个名为custom_fields的属性,该属性存储格式良好的xml:
<Root>
...
<TotalMontoSoles></TotalMontoSoles>
...
</Root>但是,这个属性不是作为xml数据类型存储的,而是作为文本存储的。我需要做的是设置TotalMontoSoles值,我试图通过使用XML-DML的修改方法来实现这一点,但是我一直在获取一个
错误SQL:不允许将数据类型xml显式转换为文本。
当我试图将列转换为xml类型时出错:
DECLARE @custom_fields xml
SET @custom_fields = (SELECT CAST(custom_fields as XML) FROM UPLOAD_HEADER_TEMPORAL
@custom_fields.modify('...')我做错了什么?我还有别的办法可以做到这一点吗?
更新:
也许重要的是要指出,我在这里要做的是创建一个过程,并在编译期间得到这个错误。
发布于 2013-03-05 16:59:48
文本列数据类型不能转换(强制转换)为XML。不过,您可以使用varchar类型之一。微软将在未来某个时候删除文本(和图像)数据类型。
http://msdn.microsoft.com/en-us/library/ms187993%28v=sql.90%29.aspx
ntext、文本和图像数据类型将在的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。使用nvarchar(max)、varchar(max)和var二进制(Max)代替。
https://stackoverflow.com/questions/15229462
复制相似问题