我有一个包含存储过程列表的表。
我正在使用游标然后循环并调用和捕获每个存储过程的结果(它们都返回 0 或 1)。
所以我有:
DECLARE @PROC_ID INT,
@PROC_NAME VARCHAR(50)
SELECT *
INTO #MY_PROCS
FROM TABLE_PROCS
DECLARE MY_CURSOR CURSOR FOR
SELECT PROC_ID, PROC_NAME
FROM TABLE_PROCS
OPEN MY_CURSOR
FETCH NEXT FROM MY_CURSOR INTO @PROC_ID, @PROC_NAME
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @PROC_RESULT = .......
UPDATE #MY_PROCS SET PROC_RESULT = @PROC_RESULT WHERE PROC_ID = @PROC_ID
END
CLOSE MY_CURSOR
DEALLOCATE MY_CURSOR
DROP TABLE #MY_PROCS
我在游标上阅读READ ONLY
,NO LOCK
如果可能的话,我应该尽可能地设置它。
另外,我应该使用表变量而不是临时表吗?
是否可以使用 oa 光标来执行此操作?