如何从SQL Server中的图表创建备份脚本?

Ard*_*oli 2 sql-server sql-server-2008-r2 sql-server-2012

我使用SQL Server 2012和SQL Server 2008 R2.

我在我的数据库中从所有对象(tables/trigger/stored procedure/function ...)创建一个脚本.

我从SQL Server Management Studio生成了这个脚本.我可以在另一台服务器上用这个scrips重新创建我的数据库.但是在运行我的脚本以创建另一个数据库后,我想念我的数据库的所有图表.

因此,我需要从我的数据库中存在的所有图表创建备份脚本.

我需要在目标数据库上执行此脚本以重新创建我的所有图表.

我发现了这个链接.但我需要一些人认为自动创建所有脚本(插入命令).

Koa*_*ear 8

我找到了合理的解决方案.问题是Management Studio无法为非XML数据显示更多65535个字符,并且无法设置为显示超过65535个字符.

请参阅文档代码:)

备份脚本:

-- 1. Read from DB, using XML to workaround the 65535 character limit
declare @definition varbinary(max)
select @definition = definition from dbo.sysdiagrams where name = 'ReportingDBDiagram' 

select
    '0x' + cast('' as xml).value('xs:hexBinary(sql:variable("@definition") )', 'varchar(max)')
for xml path('')

-- 2. Open the result XML in Management Studio
-- 3. Copy the result
-- 4. Paste this in backup script for @definition variable
Run Code Online (Sandbox Code Playgroud)

恢复脚本:

declare @definition varbinary(max)
set @definition = 0xD0CF -- Paste 0x0 value from Backup script

-- Create diagram using 'official' Stored Procedure
exec dbo.sp_creatediagram
    @diagramname = 'ReportingDBDiagramCopy',
    @owner_id = null,
    @version = 1,
    @definition = @definition
Run Code Online (Sandbox Code Playgroud)