Xem xét MẪU bảng:Duyệt qua hàng trong SQL Server 2008
id integer
name nvarchar(10)
Có một proc lưu trữ gọi là myproc
. Nó chỉ mất một paramater (đó là id)
Với một tên như tham số, tìm tất cả các hàng với name = @nameparameter
và vượt qua tất cả những id để myproc
ví dụ:
sample->
1 mark
2 mark
3 stu
41 mark
Khi mark
là đã qua, 1 ,2 and 41
sẽ được chuyển đến myproc
riêng lẻ.
ví dụ sau đây sẽ xảy ra:
execute myproc 1
execute myproc 2
execute myproc 41
tôi không thể chạm vào myproc
cũng không thấy nội dung của nó. Tôi chỉ phải truyền các giá trị cho nó.
Mặc dù điều này * có thể được thực hiện, tốt nhất là tránh, thường là bằng cách chuyển đổi proc được lưu trữ thành UDF hoặc mở rộng nội tuyến để có thể thực hiện thao tác dựa trên thiết lập.Chúng tôi cần xem nội bộ của 'myproc' để tư vấn phương pháp nào khả thi trong trường hợp này. Trong SQL, bạn nên * thường * tìm kiếm các giải pháp dựa trên thiết lập cho các vấn đề, không phải các giải pháp dựa trên vòng lặp. –
Simialr Câu hỏi được trả lời tại đây http://stackoverflow.com/questions/20662356/sql-server-loop-how-do-i-loop-through-a-set-of-records/34797745#34797745 – Sandeep
@Sandeep, đây là một câu hỏi cũ hơn và tôi đã chấp nhận giải pháp – psy