Я написал хранимую процедуру в цикле в MS SQL Server 2008 что-то вроде этогоКак получить данные из таблицы, используя цикл while?
BEGIN TRANSACTION
WHILE(@first <= @last)
BEGIN
Select @LineOfAuthorityNameSubString = TempLineOfAuthority from #tbTempLineOfAuthority;
Select @tbLineOfAuthorityId = LineOfAuthority
from tbLineOfAuthority where LineOfAuthorityX = @LineOfAuthorityNameSubString;
INSERT INTO tbProductLineOfAuthority(ProductId, LineOfAuthortyId)
VALUES(@tbProductId, @tbLineOfAuthorityId);
SET @first += @step
END
COMMIT TRANSACTION
Сейчас вопрос находится в этой строке кода
Select @tbLineOfAuthorityId = LineOfAuthority
from tbLineOfAuthority where LineOfAuthorityX = @LineOfAuthorityNameSubString;
Переменная @tbLineOfAuthorityId получает то же самое значение за все время цикла. Пожалуйста, помогите мне !!!
Почему и использовать Loop здесь? Просто используйте один выбрать со вставкой и вот оно. – Darka
Ваша треска e будет вставлять те же '@ tbProductId' и' @ tbLindeOfAuthorityId' для каждого цикла вашего цикла, является ли это предполагаемым поведением? –
'@ first',' @ last' и '@ step' не используются в теле цикла, они могут только заставлять тело работать многократно. Ничто в теле цикла не будет установлено значение '@ tbLineOfAuthorityId', поэтому оно всегда будет одинаковым. – Jodrell