0
我想在While循環中執行我的選擇查詢,但它不起作用。存儲過程在While循環中選擇語句
Set @i = 1
While(@i <= @rowNumber)
BEGIN
Set @q_getoldeMail = 'SELECT Lower('[email protected]+') FROM (
SELECT ROW_NUMBER() OVER (ORDER BY ID) AS rownumber
,ID
,[Name]
,[Description]
,[Status]
,[AssignedTo]
,[AssignedToMail]
,[CC]
FROM ' + QUOTENAME(@tablename) + ') AS ar Where rownumber = '[email protected]+''
exec sp_executesql @q_getoldeMail, N'@get_oldeMail nvarchar(100) output', @get_oldeMail output
Set @i = @i+1
在其他方面,我想沒有while循環是這樣執行的查詢:
Set @q_getoldeMail = 'SELECT Lower('[email protected]+') FROM (
SELECT ROW_NUMBER() OVER (ORDER BY ID) AS rownumber
,ID
,[Name]
,[Description]
,[Status]
,[AssignedTo]
,[AssignedToMail]
,[CC]
FROM ' + QUOTENAME(@tablename) + ') AS ar Where rownumber = '[email protected]+''
exec sp_executesql @q_getoldeMail, N'@get_oldeMail nvarchar(100) output', @get_oldeMail output
它不工作,要麼。我的錯誤是什麼?有沒有一種方法從While循環獲得Select
語句的值?你可以幫我嗎?
編輯:
我在此代碼部分設置@RowCount值:
SET @q_getrowNumber = 'SELECT Count(ID)
FROM dbo.' + quotename(@tablename) + ''
execute sp_executesql @q_getrowNumber, N'@rownumber int output', @rownumber output
該代碼部分返回一個值(112)。但是,當我改變@羅斯卡爾
Set @rowcount = 2
然後代碼工作。我想轉換成整數@RowCount,但它沒有工作
請解釋。你會得到什麼樣的行爲或錯誤信息? –
這是什麼意思 - 「不工作」。 ??? – valex
錯誤是在while循環這裏while(i <= rowNumber)當你嘗試增加@i值設置i = i + 1它會進入一個循環,並檢查是否仍然我<= rowNumber我認爲循環不是獲得rownumber –