在SQL Server中创建存储过程后,为什么要用
Alter
替换Create
?如果不更改会发生什么?除了检查是否存在并删除之外,有没有更好的替代方法?Alter
替换Create
?如果不更改会发生什么?除了检查是否存在并删除之外,有没有更好的替代方法?Create
会在表存在时失败。Alter
会在表不存在时失败。
如果你问为什么要使用Alter
,而不是删除并创建,有几个原因:
IF OBJECT_ID('dbo.MyProc') IS NOT NULL
DROP PROC dbo.MyProc
GO
CREATE PROC dbo.MyProc
...
GO
GRANT EXECUTE ---
GO
在有关有用脚本的话题上,我更喜欢创建“如果不存在则创建”过程,然后再进行修改。
IF (select object_ID('schema.Procedure')) is null
exec('Create procedure schema.Procedure as select 1')
GO
Alter procedure dpm.TableCellLoad
从我的学习经验中,
每当您提供数据库构建时,最好检查存储过程是否存在以便删除并重新创建该过程。
在调试过程中将创建更改为修改可能会发生,但这不是提供构建的标准做法。