Đây là kịch bản của tôi:T-SQL: Lặp qua một mảng các giá trị đã biết
Giả sử tôi có một thủ tục được lưu trữ khác trên một tập hợp các id cụ thể; Có cách nào để làm việc này không?
tức là thay vì cần phải làm điều này:
exec p_MyInnerProcedure 4
exec p_MyInnerProcedure 7
exec p_MyInnerProcedure 12
exec p_MyInnerProcedure 22
exec p_MyInnerProcedure 19
Làm một cái gì đó như thế này:
*magic where I specify my list contains 4,7,12,22,19*
DECLARE my_cursor CURSOR FAST_FORWARD FOR
*magic select*
OPEN my_cursor
FETCH NEXT FROM my_cursor INTO @MyId
WHILE @@FETCH_STATUS = 0
BEGIN
exec p_MyInnerProcedure @MyId
FETCH NEXT FROM my_cursor INTO @MyId
END
Mục tiêu chính của tôi ở đây chỉ đơn giản là khả năng bảo trì (dễ dàng để loại bỏ/thêm id như những thay đổi kinh doanh) , có thể liệt kê tất cả các Id trên một dòng ... Hiệu suất không được lớn như một vấn đề
gì phiên bản của SQL Server? –
liên quan, nếu bạn cần lặp lại trên danh sách không phải số nguyên như varchars, giải pháp với con trỏ: [iterate-through-a-list-of-strings-in-sql-server] (https://stackoverflow.com/questions)/38388144/iterate-through-a-list-of-strings-in-sql-server) – Pac0