我意识到这是一个非常类似于Stop SSMS from scripting SPs using sp_executesql?
然而,他们似乎改变了 SSMS 2012 的行为。
如果您选择了“检查存在”选项,如下所示:
...它现在为即将创建的 proc 生成一个 IF NOT EXISTS,以及为前一个 drop proc 生成一个 IF EXISTS,如果像我通常做的那样,我选择 DROP and CREATE 选项:
这会强制它使用 sp_executesql 编写 CREATE 脚本。这是没有意义的,因为如果 DROP 刚刚删除了它,则不需要对 CREATE 进行 IF NOT EXISTS 检查。
似乎不可能有一个没有另一个。
有任何想法吗?