Sql server 使用If-EXIST-DROP生成脚本,但不包括CREATE-In-sqlserver中的If-EXIST
我想使用Sql server 使用If-EXIST-DROP生成脚本,但不包括CREATE-In-sqlserver中的If-EXIST,sql-server,stored-procedures,ssms,Sql Server,Stored Procedures,Ssms,我想使用任务生成脚本|使用生成脚本,如果存在,则删除存储过程 但我不想包含,如果不存在-在生成脚本时创建存储过程,那么我应该怎么做 当前 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.ob
任务生成脚本|使用生成脚本
,如果存在,则删除存储过程
但我不想包含,如果不存在-在生成脚本时创建存储过程
,那么我应该怎么做
当前
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
必需的
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
谁能帮帮我吗 没有直接的选项可以做这件事。 遵循以下步骤
- 如果不存在,则包含=True
- 脚本删除和创建=脚本删除
- 如果不存在,则包含=False
- 脚本拖放和创建=脚本创建
- 追加到文件=True
for %f in (*.sql) do type "%f" >> c:\Test\output.sql
查询选项
滴
创造
使用SQL Server 17 脚本拖放和创建 见: 您可以启用“检查对象是否存在”选项为true并生成拖放创建脚本。它应该适用于2017年或Azure SQL DB
您的版本是什么?SQL Server的任何版本
DROP->CREATE
都可能导致丢失有关权限的信息CREATE->ALTER
更安全。如果您能分享任何链接以获取相关知识,我们将不胜感激。谢谢@lad2025