0
我正在使用SQL Server並嘗試構建一個嵌套遊標。 (我知道遊標並不是最好的辦法,但我不能提出任何其他解決方案)。嵌套遊標TSQL(SQL Server)
因此,第一個遊標正在經歷一個臨時Table ## Flanschbreite,將一個FlanschMin捕獲到一個變量中。它工作正常。但內部光標應該通過將FlanschMin捕獲到變量@ FL2來實現。我想創建一個臨時表,它組合了這兩個變量的所有可能組合。外部遊標工作正常,但內部遊標不經過臨時表,它只是返回第一個條目。我認爲@@ FetchStatus存在問題。
有什麼明顯的我做錯了嗎? (對不起我的英語不好,我可不是爲母語的人)
DECLARE curFL1 CURSOR FOR
SELECT FlanschMin FROM ##FlanschBreite;
OPEN curFL1
FETCH next FROM curFL1 INTO @FL1
WHILE @@Fetch_Status = 0
BEGIN
SELECT FlanschMin FROM ##FlanschBreite;
OPEN curFL2
FETCH next FROM curFL2 INTO @FL2
WHILE @@Fetch_Status = 0
BEGIN
SET @IDFLansch += 1
INSERT INTO ##FlanschZuweisung (IDFZ, FL1, FL2) VALUES (@IDFlansch, @FL1, @FL2)
FETCH next FROM curFL2
END
CLOSE curFL2
DEALLOCATE curFL2
FETCH next FROM curFL1 INTO @FL1
END
CLOSE curFL1
DEALLOCATE curFL1
我的結果爲## Flanschzuweisung:
IDFZ\ FL1\ FL2
1\ 6\ 6
2\ 8\ 6
3\ 10\ 6
4\ 6\ 6
5\ 8\ 6
...
什麼,我需要的是:
IDFZ\ FL1\ FL2
1\ 6\ 6
2\ 8\ 6
3\ 10\ 6
4\ 6\ 8
5\ 8\ 8
6\ 10\ 8
7\ 6\ 10
...
大概'CROSS JOIN'會做同樣的。更好地分享輸入數據和期望的輸出。 – lad2025
有一種可能的方式來做你想要的沒有遊標。詢問另一個問題並描述你想要完成的事情。 –
是否有你使用全局臨時表而不是常規臨時表的原因?全球臨時表有許多需要處理的挑戰。 –