运行保存在表中的SQL语句

时间:2014-12-28 16:02:29

标签: sql sql-server

我有一张表dbo.usp_table,其中包含以下记录:

    EXEC USP_one
    EXEC USP_two
    EXEC USP_three

我想执行这3个或更多存储过程。 我可以用光标做到这一点。

然而,是否有更简单的方法来解决这个问题?

2 个答案:

答案 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

注意:如果您的过程接受参数

,这将不起作用