创建存储过程(如果尚不存在)

创建存储过程(如果尚不存在),第1张

创建存储过程(如果尚不存在)

CREATE PROCEDURE
必须是批处理中的第一个语句。我通常会这样:

IF EXISTS (        SELECt type_desc, type        FROM sys.procedures WITH(NOLOCK)        WHERe NAME = 'myProc' AND type = 'P'      )     DROp PROCEDURE dbo.myProcGOCREATE PROC dbo.myProcAS....    GO    GRANT EXECUTE ON dbo.myProc TO MyUser

(不要忘记授予声明,因为如果您重新创建proc,它们将会丢失)

部署存储过程时要考虑的另一件事是,删除可以成功而创建失败。出现问题时,我总是使用回滚来编写SQL脚本。只要确保您不会在结尾时意外删除提交/回滚代码,否则您的DBA可能会在气管中将您吊起踢:)

BEGIN TRAN IF EXISTS (       SELECT type_desc, type       FROM sys.procedures WITH(NOLOCK)       WHERe NAME = 'myProc'AND type = 'P'     )DROp PROCEDURE myProc GOCREATE PROCEDURE myProcAS   --proc logic hereGO-- BEGIN DO NOT REMOVE THIS CODE (it commits or rolls back the stored procedure drop)     IF EXISTS(    SELECT 1    FROM sys.procedures WITH(NOLOCK)    WHERe NAME = 'myProc'        AND type = 'P'  )        COMMIT TRAN        ELSE        ROLLBACK TRAN-- END DO NOT REMOVE THIS CODE


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5106649.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存