我有一张表dbo.usp_table,其中包含以下记录:
EXEC USP_one
EXEC USP_two
EXEC USP_three
我想执行这3个或更多存储过程。 我可以用光标做到这一点。
然而,是否有更简单的方法来解决这个问题?
答案 0 :(得分:2)
你可以试试这个:
DECLARE @SQL NVARCHAR(MAX) = '';
SELECT @SQL = @SQL + YourColumn + '; '
FROM YourTable;
EXECUTE sp_executesql @SQL;
列YourColumn
包含SQL命令。
答案 1 :(得分:1)
声明一个变量并将表中的所有值(exec procedurename)存储到末尾附加了空格的变量中并执行该变量。试试这个
declare @exec_proc nvarchar(max)=''
select @exec_proc += proc_name+' ' from dbo.usp_table
-- print @exec_proc
exec sp_executesql @exec_proc
注意:如果您的过程接受参数
,这将不起作用