저는 while 루프가 간단하고 반복문 내에서 하나의 열로 DECLARE @TABLE
을 선언하고 그 데이터 유형은 id입니다. 루프가 레코드를 루프하는 동안 나는 테이블 변수에 값을 삽입하고 있습니다. 루프가 루프 할 때마다 Declare @TABLE
을 다시 만들어야하며 이전 값이 없어야합니다. 그러나 그 일은 일어나지 않습니다. 아래는while 루프에서 테이블을 다시 만들지 않기를 선언합니다.
1
2
3
로 출력을 받아야 정상에서 코드
Declare @V int
Set @V = 1
While (@V <= 3)
begin
DECLARE @Changes table
(
Id int
)
Insert into @Changes
Values (@V)
select * from @Changes
SET @[email protected]+1
END
하지만 난이 무엇입니까 출력이 잘못
1
1
2
1
2
3
입니다.
이것은 일반적인 동작 또는 SQL의 버그입니까?
루프 외부로 선언하고 루프의 시작 부분에서 그것을 잘라. –