我有一个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查询吗?
到目前为止,我可以使用类似查询来解决方法,但希望采用更好的方法。
答案 0 :(得分:0)
不,你不能。要使用XQuery,您必须使用XML
数据类型。
如果那些列确实只包含XML - 那么阻止你将它改为XML
(这应该是第一位的,真的)是什么?
如果你不能改变它(再次:为什么不改变??!),那么你需要为每一个操作进行CAST(XMLContent as XML):
SELECT
CAST(XMLContent AS XML).value('.....', '..')
等等 - 不是一个非常有用和有用的方法。
此外:TEXT
和NTEXT
已弃用,不应再使用 - 请使用更合适的数据类型,例如XML
或(N)VARCHAR(MAX)