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
ステートメントから値を取得する方法はありますか?手伝って頂けますか?
EDIT:
私はこのコード部に@RowCount値を設定:
SET @q_getrowNumber = 'SELECT Count(ID)
FROM dbo.' + quotename(@tablename) + ''
execute sp_executesql @q_getrowNumber, N'@rownumber int output', @rownumber output
このコード部分は、値(112)を返します。しかし、私が@rowcountを変更すると、
Set @rowcount = 2
となります。私は@rowcountを整数に変換しようとしたが、それは
説明してください。どのような動作やエラーメッセージが表示されますか? –
「何もしない」とは何を意味しますか? ??? – valex
間違っているwhileループwhile(i <= rowNumber)iをインクリメントしようとしているときi = i + 1これはループに入り、まだi <= rowNumberかどうかをチェックします。 rownumberを取得する –