You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:无需DBCC CLONEDATABASE,生成仅含表架构和存储过程的BAK文件

替代DBCC CLONEDATABASE生成仅含表架构和存储过程的备份文件方案

方案1:通过生成架构脚本创建空库后备份

无需修改源库用户,操作直观易上手:

  • 生成架构脚本
    打开SSMS,右键源数据库DB_Full → 任务 → 生成脚本;在向导中选择要导出的对象:勾选所有用户表(仅架构)、存储过程;在「设置脚本编写选项」中,设置「编写CREATE脚本」为True,「编写DROP脚本」为False,确保只导出架构定义;保存脚本到本地或直接在查询窗口执行。
  • 创建并初始化空数据库
CREATE DATABASE [DB_SchemaAndSP];
GO
-- 执行之前生成的架构脚本,创建所有表和存储过程
  • 备份数据库
BACKUP DATABASE [DB_SchemaAndSP]
TO DISK = 'D:\Backups\DB_SchemaAndSP_SchemaOnly.bak'
WITH INIT, COMPRESSION;
GO

方案2:使用T-SQL批量生成架构脚本(适合自动化场景)

如果需要自动化执行,可通过系统视图批量生成表和存储过程的CREATE语句:

生成存储过程脚本

SELECT 
    'CREATE PROCEDURE ' + QUOTENAME(s.name) + '.' + QUOTENAME(p.name) + ' AS ' + OBJECT_DEFINITION(p.object_id) AS ProcScript
FROM sys.procedures p
JOIN sys.schemas s ON p.schema_id = s.schema_id
WHERE p.type = 'P';

生成表架构脚本

SELECT 
    OBJECT_DEFINITION(t.object_id) AS TableScript
FROM sys.tables t
JOIN sys.schemas s ON t.schema_id = s.schema_id;

执行以上查询后,将结果中的脚本汇总,执行到新建的空库,再按方案1的备份步骤操作即可。

方案3:部分备份(针对特定场景)

若源库的表和存储过程集中在只读文件组内,可直接备份该文件组:

BACKUP DATABASE [DB_Full]
FILEGROUP = 'Schema_FG' -- 替换为实际存储架构对象的文件组名称
TO DISK = 'D:\Backups\DB_Schema_FG.bak'
WITH INIT, COMPRESSION;
GO

此方法仅适用于架构对象集中存储的场景,通用性较弱。

以上方案均无需删除源库用户,可直接生成仅包含表架构和存储过程的备份文件,规避DBCC CLONEDATABASE的索引冲突问题。

内容的提问来源于stack exchange,提问作者Adalbert N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 05:50:11