MSSQL DE VERİTABANI DİYAGRAMLARINI YEDEKLEME VE YENİDEN YÜKLEME

Microsoft SQL Server Backup Diagram

MSSQL Veritabanındaki oluşturduğumuz diyagramları yedekleme gibi bir problem yaşarız. Tablolar arasındaki ilişkiler, tablo sayısı arttıkça diyagramı yeniden oluşturmak çok ciddi bir zaman kaybına sebep olur.

Bu yazımda MSSQL veritabanında diyagramların nasıl yedeği alınır ve yedeği alınan bir diyagram nasıl yeniden yüklenir sizlere bunu anlatmaya çalışacağım.

Diyagramları select sorgusu ile elde etme

select name, principal_id, version, definition from KAYNAK_DATABASE_ADI.dbo.sysdiagrams

Yukarıdaki sorgu ile KAYNAK_DATABASE_ADI yerine yazdığınız veritabanı için bütün diyagramları elde edebilirsiniz. Ancak hemen şunu belirtmeliyim bu sorgu sadece bildiğiniz üzere veritabanını elde etmenize yarayacaktır. Yukarıdaki sorgudan gelen sonuç aşağıdaki gibidir;

MSSQL DE VERİTABANI DİYAGRAMLARINI YEDEKLEME VE YENİDEN YÜKLEME

Diyagramları insert sorgusu ile yükleme

insert into HEDEF_DATABASE_ADI.dbo.sysdiagrams (name, principal_id, version, definition)

Yukarıdaki insert sorgusu ile HEDEF_DATABASE_ADI yerine yazdığınız veritabanına diyagram kaydedebilirsiniz. Ancak şunu belirtmek istiyorum; select sorgusundan gelen veriyi aşağıdaki gibi direkt kaydetmeye çalışırsanız sorgu çalışır ve kayıt işlemi gerçekleşir. Ama aşağıdaki outputu almanız olasıdır;





insert into HEDEF_DATABASE_ADI.dbo.sysdiagrams (name, principal_id, version, definition) values ('Diyagram_Adı', 1, 1, 0xD0CF...)

Bunun anlamı diyagram kaydedilirken "definition" sütunu eksik veya yanlış yüklenmiş demektir.  Bu yüzden insert işleminin değerlerini direkt elde ettiğiniz gibi değilde aşağıdaki gibi yüklemek bu problemi ortadan kaldırır.

insert into HEDEF_DATABASE_ADI.dbo.sysdiagrams (name, principal_id, version, definition) 
select name, principal_id, version, definition from KAYNAK_DATABASE_ADI.dbo.sysdiagrams

Bu yazımda veritabanındaki mevcut diyagramın select sorgusu ile elde edilmesi ve bu elde edilen diyagramın insert sorgusu ile yeniden yüklenmesinden elimden geldiğince bahsetmeye çalıştım. Aklınıza takılan bir soru varsa aşağıdan bu gönderiye yorum yapabilirsiniz veya buradan bana mesaj atabilirsiniz. Sonraki yazımda görüşmek üzere..

Bu gönderiyi paylaşın


Yorumlar (0)

Yorum Yapın