gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 00:02:39 27 4
gpt4 key购买 nike

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

我从我数据库中的所有对象(表/触发器/存储过程/函数...)创建一个脚本。

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

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

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

我找到了这个 Link .但我需要一些想法来自动创建所有脚本(插入命令)。

最佳答案

我找到了一个合理的解决方案。问题在于,对于非 XML 数据,Management Studio 无法显示超过 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

恢复脚本:

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

关于sql-server - 如何从 SQL Server 中的图表创建备份脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19706111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com