使用 If EXIST DROP 生成脚本,但不包括 SQL Server 中 CREATE 中的 If Not Exists

ped*_*ram 6 sql-server ssms stored-procedures

Tasks | Generate Scripts我想使用with生成脚本IF Exist Drop Stored Procedure

但我不想IF NOT EXISTS - Create Stored Procedure在生成脚本时包含,那么我该怎么办?

当前的

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SPNAME]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[SPNAME]
GO

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SPNAME]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[SPNAME] AS' 
END
GO
Run Code Online (Sandbox Code Playgroud)

必需的

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SPNAME]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[SPNAME]
GO

CREATE PROCEDURE [dbo].[SPNAME] AS 
Run Code Online (Sandbox Code Playgroud)

谁能帮帮我吗!

Rik*_*tel 5

没有直接的选项可以完成此操作。请按照以下步骤操作。

  1. 为所有对象生成 DROP 脚本。

    • 如果不存在则包含 = True
    • 脚本 DROP 和 CREATE = 脚本 DROP
  2. 为所有对象生成 CREATE 脚本。

    • 如果不存在则包含 = False
    • 脚本 DROP 和 CREATE = 脚本 CREATE
    • 附加到文件 = True

第二步将附加在第一步中生成的 drop 脚本的内容。

如果要将所有文件合并到一个文件中,请使用以下命令

for %f in (*.sql) do type "%f" >> c:\Test\output.sql
Run Code Online (Sandbox Code Playgroud)

查询选项

查询选项

降低

降低

创造

创造