SQL Server XML查询文本数据类型

时间:2014-02-20 21:22:37

标签: sql sql-server xml

我有一个ntext数据类型列,其中包含XML内容,如下所示:

CREATE TABLE [dbo].[SampleTable](
    [SampleId] [bigint] NOT NULL,
    [XMLContent] [ntext] NOT NULL,
    CONSTRAINT [PK_SampleTable] PRIMARY KEY CLUSTERED 
    (
        [SampleId] ASC
    )
)

我可以针对SQL Server中的Ntext列运行XML查询吗?

到目前为止,我可以使用类似查询来解决方法,但希望采用更好的方法。

1 个答案:

答案 0 :(得分:0)

不,你不能。要使用XQuery,您必须使用XML数据类型。

如果那些列确实只包含XML - 那么阻止你将它改为XML(这应该是第一位的,真的)是什么?

如果你不能改变它(再次:为什么不改变??!),那么你需要为每一个操作进行CAST(XMLContent as XML):

SELECT
    CAST(XMLContent AS XML).value('.....', '..') 

等等 - 不是一个非常有用和有用的方法。

此外:TEXTNTEXT已弃用,不应再使用 - 请使用更合适的数据类型,例如XML(N)VARCHAR(MAX)