当我执行数据库脚本时,我在存储过程中遇到错误,然后无法创建存在错误的存储过程。即使存储过程中发生某些错误,我也想强制创建存储过程。
如果create procedure语句中发生了某些错误,则不会创建存储过程。我想要的是无论是否发生错误,都会创建存储过程。
实际上我们在SQL Server 2000中有数据库,我将它附加在SQL Server 2005中,然后将兼容级别更改为90.最后我想执行脚本但我也希望如果发生了一些错误,那么它将忽略错误并创建对象。
答案 0 :(得分:2)
您可以通过以不可失败的方式创建存储过程来强制创建存储过程。见这个例子:
if object_id('sp_name') is null
exec sp_executesql N'create procedure dbo.sp_name as select 1'
go
alter procedure db.sp_name
as
...
go
现在如果alter失败了,无论如何都会有一个存储过程。