Я хочу выполнить свой запрос select в цикле 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
В остальном, я пытался выполнить запрос без во время цикла, как это:
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
Это не работает, либо. Какая у меня ошибка? Есть ли способ получить значение от Select
с помощью цикла While? Вы можете мне помочь?
РЕДАКТИРОВАТЬ:
Я установил @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 –