1
我已經創建了SQL Server 2008中的存儲過程,它包含了下面的代碼片段:未初始化變量中While循環
WHILE (@COUNTER <= @COUNT_ROWSTOBEPROCESSED)
BEGIN
DECLARE @INFID AS INT =0;
DECLARE @TPID AS INT =0;
SELECT @INFID = InfID FROM @TEMPTABLE WHERE @@ROWCOUNT = @COUNTER;
print @INFID ;
SET @COUNTER = @COUNTER + 1;
END
但它給了我下面的結果:
(106 row(s) affected)
0
-26
0
0
0
0
0
0
0
0 all are zeros ....
我有已經在臨時表中存儲了值,但未初始化爲@INFID
變量。
爲什麼會發生?我不明白...
請幫助我,如果有人有解決方案。
----評論--- yeap,我已經看到我的代碼。但是在這裏我已經在我的代碼中增加了計數器增量。但我仍然有同樣的問題。 當我在循環內運行下面的查詢。我發現@@行數始終爲1
SELECT InfID,@ROWCOUNT FROM @TEMPTABLE WHERE @@ROWCOUNT = @COUNTER;
u能告訴我如何使用迭代的不是Temptable每行while循環或在SQL循環?
WHERE @@ ROWCOUNT = @ COUNTER'不正確。你想做什麼? –
每次運行SELECT語句時都不會改變@@ ROWCOUNT,因此它總是會選擇第一個結果? –
這是一個無限循環,因爲'@COUNTER <= @ COUNT_ROWSTOBEPROCESSED'沒有變化。 – danihp