Stored procedures 在CREATE存储过程中添加DROP的真正原因
我只是想知道创建和执行存储过程的最佳实践是什么 我看到的情况如下:-Stored procedures 在CREATE存储过程中添加DROP的真正原因,stored-procedures,Stored Procedures,我只是想知道创建和执行存储过程的最佳实践是什么 我看到的情况如下:- IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'Foo') DROP PROCEDURE Foo GO CREATE PROCEDURE dbo.Foo 但是我认为当我们执行这个存储过程时,它会删除存储过程并创建一个新的存储过程。但是如果create存储过程语法中有错误,它将不会重新创建存储过程,对吗?因此,我们现有的存储过程被删除
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'Foo')
DROP PROCEDURE Foo
GO
CREATE PROCEDURE dbo.Foo
但是我认为当我们执行这个存储过程时,它会删除存储过程并创建一个新的存储过程。但是如果create存储过程语法中有错误,它将不会重新创建存储过程,对吗?因此,我们现有的存储过程被删除,而新的存储过程不会被创建。那么,在此处添加DROP的真正原因是什么呢?原因是您的脚本可以以某种方式运行—它们可以根据需要运行任意多次,并获得相同的结果。也就是说,数据库将具有所需的存储过程。您的过程将被创建,并在需要时预先删除。如果不这样做,则需要单独的拖放和创建脚本
如果您担心您的脚本有错误,那么就修复它们。运行脚本几次,并修复出现的任何问题。不必维护单独的脚本集,这样做是值得的。因为它是以逐行方式执行的,所以当它创建过程,然后出现错误时,您再次重新创建该过程,然后它会出现错误,因为它已在数据库中生成,并带有错误代码 因此,它希望重新创建该过程 您可以使用alter而不是create 希望这能帮助你