【发布时间】:2016-10-25 10:10:23
【问题描述】:
我想在 While 循环中执行我的选择查询,但它不起作用。
Set @i = 1
While(@i <= @rowNumber)
BEGIN
Set @q_getoldeMail = 'SELECT Lower('+@columnname+') FROM (
SELECT ROW_NUMBER() OVER (ORDER BY ID) AS rownumber
,ID
,[Name]
,[Description]
,[Status]
,[AssignedTo]
,[AssignedToMail]
,[CC]
FROM ' + QUOTENAME(@tablename) + ') AS ar Where rownumber = '+@i+''
exec sp_executesql @q_getoldeMail, N'@get_oldeMail nvarchar(100) output', @get_oldeMail output
Set @i = @i+1
在其他方面,我尝试在没有 while 循环的情况下执行查询,如下所示:
Set @q_getoldeMail = 'SELECT Lower('+@columnname+') FROM (
SELECT ROW_NUMBER() OVER (ORDER BY ID) AS rownumber
,ID
,[Name]
,[Description]
,[Status]
,[AssignedTo]
,[AssignedToMail]
,[CC]
FROM ' + QUOTENAME(@tablename) + ') AS ar Where rownumber = '+@i+''
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)。但是当我改变@rowcount
Set @rowcount = 2
然后代码工作。我尝试转换为整数 @rowcount 但它不起作用
【问题讨论】:
-
“它不起作用。”请解释。您会收到什么样的行为或错误消息?
-
这是什么意思 - “不工作”。 ???
-
错误出现在 While 循环中 While (i
-
你只发布了一半的代码,你还没有解释“不起作用”
标签: sql sql-server stored-procedures procedure