1
我遇到了一個問題。即時通訊嘗試通過CTE代碼上的多個數據庫使用while循環。 我收到以下錯誤消息CTE QUERY上的Microsoft SQLServer LOOP
102, Level 15, State 1, Line 4 Incorrect syntax near ';'.
當前的代碼我現在用我的所有查詢被粘貼下面...任何幫助將是巨大的對我如何可以通過多個數據庫循環。謝謝。
USE WSA
delete from TEST
GO
DECLARE @Database varchar(20), @i int
SELECT @i = 0
WHILE @i < 6
BEGIN
if @i = 0 SELECT @Database = 'Hs_Active'
if @i = 1 SELECT @Database = 'Ge_Active'
if @i = 2 SELECT @Database = 'At_Active'
if @i = 3 SELECT @Database = 'LW_Active'
if @i = 4 SELECT @Database = 'SE_Active'
if @i = 5 SELECT @Database = 'LL_Active'
execute(
'USE '[email protected] +'
insert into WSA.dbo.TEST
;WITH
Credit AS
( SELECT PTNO,CD,AMT,DESCRIPTION,
ROW_NUMBER()OVER(PARTITION BY PTNO,CD ORDER BY BatchSeqID) AS Sort
FROM dbo.DTLPAYMENTS
WHERE AMT < 0),
Debit AS
( SELECT PTNO,CD,AMT,DESCRIPTION,
ROW_NUMBER()OVER(PARTITION BY PTNO,CD ORDER BY BatchSeqID) AS Sort
FROM dbo.DTLPAYMENTS
WHERE AMT > 0)
SELECT ISNULL(c.PTNO,d.PTNO) AS PTNO,
ISNULL(c.CD,d.CD) AS CD,
--Credit data
c.AMT AS CRAMT,
c.DESCRIPTION AS CRDESCRIPTION,
--Debit data
d.AMT AS DBTAMT,
d.DESCRIPTION AS DBTDESCRIPTION
FROM Credit c
FULL JOIN Debit d
ON d.PTNO = c.PTNO
AND d.CD = c.CD
AND d.Sort= c.Sort
')
SELECT @[email protected]+1
END
你的錯誤最可能的原因是你使用的是與關鍵字在插入查詢中。 –