Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để tạo tập lệnh sao lưu từ sơ đồ trong SQL Server?

Tôi đã tìm ra một giải pháp hợp lý. Vấn đề là Management Studio không thể hiển thị nhiều hơn 65535 ký tự cho dữ liệu không phải XML và không thể được đặt để hiển thị nhiều hơn 65535.

Xem mã cho tài liệu :)

Tập lệnh sao lưu:

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

Khôi phục tập lệnh:

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. không có sqljdbc_auth trong java.library.path

  2. Lưu trữ hình ảnh trên cơ sở dữ liệu

  3. Lệnh DELETE quá chậm trong bảng có chỉ mục được phân cụm

  4. Làm cách nào để chạy một thủ tục được lưu trữ hàng ngày trong SQL Server Express Edition?

  5. Chuyển đổi tên tháng thành số tháng trong SQL Server