我试图找到一个可以解决我的错误的解决方案,但是我无法在与此主题相关的线程上找到任何内容,而且肯定是我缺少的东西或者我傻到不能发现我自己。
我在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
我收到以下错误,但我不明白我错过了什么。我一直尝试使用分号(;)或逗号(,),因为我可以看到这里的先前同事的解决方案,但是。
第15行,第15行,第1行,第15行 关键字' WITH'附近的语法不正确。 消息319,第15级,状态1,第15行 关键字'与'附近的语法不正确。如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则必须以分号结束前一个语句。
有什么建议吗?感谢
答案 0 :(得分:0)
DECLARE @XML VARCHAR(MAX)
;WITH XMLNAMESPACES ('uri' as ns1)
SELECT @XML=(
SELECT 1 as one
FOR XML RAW('EEE'), ELEMENTS
)