sql >> Databasteknik >  >> RDS >> Sqlserver

Hur kan jag skapa säkerhetskopieringsskript från diagram i SQL Server?

Jag har hittat en rimlig lösning. Problemet är att Management Studio inte kan visa mer än 65535 tecken för icke-XML-data och inte kan ställas in för att visa mer än 65535.

Se kod för dokumentation :)

Säkerhetskopieringsskript:

-- 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

Återställ skript:

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


  1. Hur får jag ett resultat över 2 tabeller

  2. Installera PostgreSQL Client v10 på AWS Amazon Linux (EC2) AMI

  3. Hur rundar man av en DateTime i MySQL?

  4. Hur man pivoterar tabell för år i SQL?