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 –