如果是 xmlnamespaces,前面的语句必须以分号结尾



我一直在试图找到一个可以解决我的错误的解决方案,但我在与此主题相关的线程上找不到任何内容,并且肯定是我缺少的东西,或者我足够愚蠢,自己没有发现它。

我在 MS SQL 中有以下块 -

DECLARE @XMLFINAL VARCHAR(MAX)
SET @XMLFINAL=''
DECLARE @NUMBER NVARCHAR(100)
DECLARE @XML VARCHAR(MAX)
DECLARE Records CURSOR FAST_FORWARD FOR
SELECT TOP 1 GID FROM PurchasesDocumentsLines
OPEN Records
FETCH NEXT FROM Records INTO @NUMBER
WHILE @@FETCH_STATUS = 0 
BEGIN
SET @XML=''  
SET @XML=(
SELECT  (
WITH XMLNAMESPACES ('uri' as ns1)
SELECT 
ProductCode, OrderedQuantity
FROM PurchasesDocumentsLines WHERE GID=@NUMBER
FOR
XML RAW('EEE'), ELEMENTS
))
FETCH NEXT FROM Records INTO @NUMBER
SET @XMLFINAL=@XMLFINAL+@XML
END
CLOSE Records DEALLOCATE Records

收到以下错误,但我真的不明白我错过了什么。我一直在尝试使用分号 (;)或逗号 (,),正如我在这里看到的以前的同事的解决方案,但是。

Msg 156,级别 15,状态 1,第 15 行 关键字"WITH"附近的语法不正确。 Msg 319,级别 15,状态 1,第 15 行 关键字"with"附近的语法不正确。如果此语句是公用表表达式、xmlnamespaces 子句或更改跟踪上下文子句,则前面的语句必须以分号结尾。

有什么建议吗?谢谢

DECLARE @XML VARCHAR(MAX)
;WITH XMLNAMESPACES ('uri' as ns1)
SELECT  @XML=(
SELECT 1 as one
FOR XML RAW('EEE'), ELEMENTS
)

最新更新