【发布时间】:2009-10-19 15:04:12
【问题描述】:
这是我的场景:
假设我有一个存储过程,我需要在一组特定的 id 上调用另一个存储过程;有没有办法做到这一点?
即而不是需要这样做:
exec p_MyInnerProcedure 4
exec p_MyInnerProcedure 7
exec p_MyInnerProcedure 12
exec p_MyInnerProcedure 22
exec p_MyInnerProcedure 19
做这样的事情:
*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
我的主要目标是简单的可维护性(随着业务的变化易于删除/添加 ID),能够在一行中列出所有 ID...性能不应该是一个大问题
【问题讨论】:
-
相关,如果你需要迭代像varchars这样的非整数列表,用光标解决:iterate-through-a-list-of-strings-in-sql-server
标签: sql sql-server tsql