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