如何在SQL Server 2008中的另一个存储过程中创建存储过程

sql*_*bie 8 sql sql-server-2008

我想创建一个存储过程,以便在存储过程中使用,如下所示.这可能吗?

CREATE procedure parentSP
as 

--child SP definition.
CREATE procedure childSP1 @inputArg varchar(50)
as 
--do something.
Go

--call child sp within parentSP
execute childSP1 '10'

Go
Run Code Online (Sandbox Code Playgroud)

Ada*_*uth 10

你可以使用exec:

CREATE procedure parentSP
as 
exec('CREATE procedure childSP1 @inputArg varchar(50)
as 
--do something.')

--call child sp within parentSP
execute childSP1 '10'
Go
Run Code Online (Sandbox Code Playgroud)

  • 当然,这将在第二次运行时出错,除非您稍后再删除该过程(或者如果proc不存在则仅运行内部创建) (2认同)
  • 如果您即时创建一个存储过程,则使用它后应立即删除。 (2认同)