代码之家  ›  专栏  ›  技术社区  ›  mmohab

针对文本数据类型的SQL Server XML查询

  •  0
  • mmohab  · 技术社区  · 11 年前

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

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

    我可以针对 Ntext SQL Server中的列?

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

    1 回复  |  直到 11 年前
        1
  •  0
  •   marc_s    11 年前

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

    如果该列确实只包含XML,那么是什么阻止了您将其更改为XML XML格式 (真的,哪个应该放在第一位)?

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

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

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

    此外: TEXT NTEXT 已弃用,不应再使用-使用更合适的数据类型,如 XML格式 (N)VARCHAR(MAX) 相反