Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 即使发生错误,如何强制创建存储过程?_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 即使发生错误,如何强制创建存储过程?

Sql 即使发生错误,如何强制创建存储过程?,sql,sql-server,tsql,Sql,Sql Server,Tsql,当我执行数据库脚本时,存储过程中出现了错误,所以它无法创建有错误的存储过程。我想强制创建存储过程,即使存储过程中发生了一些错误 如果CREATEPROCEDURE语句中发生错误,它将不会创建存储过程。我想要的是,无论是否发生错误,存储过程都将被创建 实际上,我们在SQLServer2000中有数据库,我在SQLServer2005中附加了它,然后将兼容性级别更改为90。最后,我希望执行脚本,但我也希望,如果发生错误,它将忽略错误并创建对象。您可以通过以不失败的方式创建存储过程来强制创建存储过程。

当我执行数据库脚本时,存储过程中出现了错误,所以它无法创建有错误的存储过程。我想强制创建存储过程,即使存储过程中发生了一些错误

如果CREATEPROCEDURE语句中发生错误,它将不会创建存储过程。我想要的是,无论是否发生错误,存储过程都将被创建


实际上,我们在SQLServer2000中有数据库,我在SQLServer2005中附加了它,然后将兼容性级别更改为90。最后,我希望执行脚本,但我也希望,如果发生错误,它将忽略错误并创建对象。

您可以通过以不失败的方式创建存储过程来强制创建存储过程。请参见此示例:

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失败,那么仍然会有一个存储过程。

这不是首先就违背了错误的目的吗?你的代码显然出了问题。修复它,然后将创建存储的进程。为什么不在这里粘贴代码,这样我们就可以帮助您了?我不太明白您为什么要创建一个坏的存储过程?如果表不存在,它应该仍然可以正常工作。它只是不检查列是否有效。如果缺少依赖项,则相同-它将只打印一条消息(mssql)。如果它有语法错误,那么它不应该工作。就像你不能编译坏代码一样。也许你可以提供一些背景资料来说明你为什么要这样做?这可能有助于回答问题。这是个非常糟糕的主意。不要试图将错误代码放入数据库。这些错误是有原因的。修复代码。