【发布时间】:2019-04-27 23:12:27
【问题描述】:
我想编写将 XML exists() 函数与命名空间和 IF-ELSE 构造结合使用的 T-SQL 代码。
从this thread我知道WITH XMLNAMESPACES是用来使用命名空间的。我还知道exist() 函数用于确定XML 变量中是否存在节点。
到目前为止,我使用exist()如下:
IF ((@MyXML.exist('someNode')) = 0)
BEGIN
-- Do Something
END
ELSE
BEGIN
-- Do Something else
END
但是,如果我需要使用命名空间,我不知道如何组合它。我尝试如下,但出现错误。
;WITH XMLNAMESPACES('http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message' AS ns)
IF ((@MyXML.exist('ns:someNode')) = 0)
BEGIN
-- Do Something
END
ELSE
BEGIN
-- Do Something else
END
我收到以下错误:
关键字“WITH”附近的语法不正确。
因此,我的问题是:如何将 T-SQL If-Else 构造与 XML 命名空间和 XML exist() 函数结合使用?
【问题讨论】:
-
感谢工作。而且我了解到命名空间是区分大小写的。
-
XML / XPath / XQuery 中的所有内容都区分大小写... :-)
标签: sql-server xml tsql xml-namespaces exists