Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak mogę utworzyć skrypt kopii zapasowej z diagramu w SQL Server?

Znalazłem rozsądne rozwiązanie. Problem polega na tym, że Management Studio nie może wyświetlić więcej niż 65535 znaków dla danych innych niż XML i nie można ustawić wyświetlania więcej niż 65535.

Zobacz kod dokumentacji :)

Skrypt kopii zapasowej:

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

Skrypt przywracania:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyzwalacz wypalania do wstawiania zbiorczego

  2. Instrukcja ALTER TABLE kolidowała z ograniczeniem FOREIGN KEY w SQL Server — SQL Sever / TSQL Tutorial, część 69

  3. Zamówienie niestandardowe SQL według

  4. 4 sposoby sprawdzenia, czy tabela istnieje przed upuszczeniem jej w SQL Server (T-SQL)

  5. Jak używać TimeZoneInfo w zestawie SQLCLR w SQL Server 2012?