运行保存在表中的SQL语句
我有一个表dbo.usp_,其中包含以下记录:运行保存在表中的SQL语句,sql,sql-server,Sql,Sql Server,我有一个表dbo.usp_,其中包含以下记录: EXEC USP_one EXEC USP_two EXEC USP_three 我想执行这3个或更多存储过程。 我可以用光标来做这件事 但是,有没有更简单的方法来解决这个问题?您可以尝试以下方法: DECLARE @SQL NVARCHAR(MAX) = ''; SELECT @SQL = @SQL + YourColumn + '; ' FROM YourTable; EXECUTE sp_executesql @S
EXEC USP_one
EXEC USP_two
EXEC USP_three
我想执行这3个或更多存储过程。
我可以用光标来做这件事
但是,有没有更简单的方法来解决这个问题?您可以尝试以下方法:
DECLARE @SQL NVARCHAR(MAX) = '';
SELECT @SQL = @SQL + YourColumn + '; '
FROM YourTable;
EXECUTE sp_executesql @SQL;
其中列YourColumn
包含SQL命令。您可以尝试以下操作:
DECLARE @SQL NVARCHAR(MAX) = '';
SELECT @SQL = @SQL + YourColumn + '; '
FROM YourTable;
EXECUTE sp_executesql @SQL;
其中列YourColumn
包含SQL命令。您可以尝试以下操作:
DECLARE @SQL NVARCHAR(MAX) = '';
SELECT @SQL = @SQL + YourColumn + '; '
FROM YourTable;
EXECUTE sp_executesql @SQL;
其中列YourColumn
包含SQL命令。您可以尝试以下操作:
DECLARE @SQL NVARCHAR(MAX) = '';
SELECT @SQL = @SQL + YourColumn + '; '
FROM YourTable;
EXECUTE sp_executesql @SQL;
其中,
YourColumn
列包含SQL命令。声明一个变量,并将表中的所有值(exec-procedurename)存储到该变量中,在该变量末尾追加空格,然后执行该变量。试试这个
declare @exec_proc nvarchar(max)=''
select @exec_proc += proc_name+' ' from dbo.usp_table
-- print @exec_proc
exec sp_executesql @exec_proc
注意:如果您的过程接受参数声明一个变量,并将表中的所有值(exec procedurename)存储到该变量中,并在末尾添加空格,然后执行该变量,则此操作将不起作用。试试这个
declare @exec_proc nvarchar(max)=''
select @exec_proc += proc_name+' ' from dbo.usp_table
-- print @exec_proc
exec sp_executesql @exec_proc
注意:如果您的过程接受参数声明一个变量,并将表中的所有值(exec procedurename)存储到该变量中,并在末尾添加空格,然后执行该变量,则此操作将不起作用。试试这个
declare @exec_proc nvarchar(max)=''
select @exec_proc += proc_name+' ' from dbo.usp_table
-- print @exec_proc
exec sp_executesql @exec_proc
注意:如果您的过程接受参数声明一个变量,并将表中的所有值(exec procedurename)存储到该变量中,并在末尾添加空格,然后执行该变量,则此操作将不起作用。试试这个
declare @exec_proc nvarchar(max)=''
select @exec_proc += proc_name+' ' from dbo.usp_table
-- print @exec_proc
exec sp_executesql @exec_proc
注意:如果您的过程接受参数,这将不起作用No。光标是前进的方向。不,真的。光标是前进的方向。不,真的。光标是前进的方向。不,真的。光标是前进的方向。