간단한 while 루프를 작성하려고합니다.SQL while 루프가 무한 루프에 걸렸습니다.
declare @colname as varchar =''
while @colname is not null
begin
Select @colname = col1
FROM Table1
WHERE col1 in ('test1','test2','test3')
if(@colname is not null)
begin
exec sp('@colname')
end
end
마지막으로 찾은 행의 값이 점점 커지고있는 것 같습니다. 이 문제를 해결하는 방법에 대한 제안.
업데이트 : select 문에서 반환되는 각 값에 대해 저장 프로 시저를 호출하고 있습니다. 대신 논리는 커서를 사용하여 작성되었습니다. 따라서 커서를 while 루프로 변환하려고합니다. 감사
I를 루프는 그냥 선택 문 앞에 null로 설정 @colname 필요 영원히
계속 그것이 결코 null이 될 것이라고 생각하지 마십시오. @colname은 SELECT의 마지막 값을 포함합니다. –
SQL의 루프는 일반적으로 필요하지 않습니다. 루프를 작성해야합니까? 그리고 다른 사람들이 지적했듯이 SELECT 문은 항상 'test1', 'test2'또는 'test3'값이없는 한 값을 반환합니다. –
이 while 루프를 사용하여 수행하려는 작업은 무엇입니까? 그것은 우리가 당신의 논리로 무엇을 수정해야하는지에 대한 조언을 제공하는 데 도움이 될 수 있습니다. –