【发布时间】:2017-04-21 08:18:13
【问题描述】:
尝试使用另一个存储过程创建一个新的存储过程。
CREATE PROCEDURE [dbo].[CreateNewDB]
@dbName nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
EXEC('CREATE DATABASE '+@dbName)
EXEC('USE '+@dbName+ ' CREATE PROCEDURE [dbo].[usp_GetUser]
@id varchar(50)
AS
BEGIN
<<Stored Procedure Logic>>
END')
END
当我尝试如下调用上述存储过程时
DECLARE @return_value int
EXEC @return_value = [dbo].[CreateNewDB]
@dbName = N'MyUserDatabase'
SELECT 'Return Value' = @return_value
它创建数据库而不是存储过程。
它会引发以下错误。
Msg 111, Level 15, State 1, Procedure usp_GetUser, Line 6
'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.
【问题讨论】:
标签: sql-server stored-procedures