Bir Microsoft SQL Server veritabanını bir SQL betiğine dökmek nasıl?


124

Bir Microsoft SQL Server veritabanını bir sql betiğine vermenin bir yolu var mı?

Mysqldump'a benzer şekilde davranan, veri tabanı adı alan ve tüm tabloları, saklı yordamları yeniden oluşturacak, tüm verileri yeniden yerleştirecek vb. Gibi tek bir komut dosyası üreten bir şey arıyorum.

Http://vyaskn.tripod.com/code.htm#inserts gördüm , ancak ideal olarak son senaryoyu oluşturmak için tek bir adımda çalışan her şeyi (yalnızca verileri değil) yeniden oluşturacak bir şey istiyorum.


@Matt Evet, verileri dışa aktarmaz. Bu yüzden onu önerdiğiniz senaryo ile birleştirmeniz gerektiğini söyledim. Bu yöntem bir betiği doğru sırada olsa da oluşturur.
Julio César

Aslında, Mangement Studio 2008'de, sadece "veri ver" seçeneğini açmanız yeterlidir ve script hem şema hem de ifadeler içerecektir.
user24161


@MattSheppard lütfen cevaplardan birini kabul etmeyi düşünün
030

Yanıtlar:


111

SQL Server Management Studio'da veritabanınızı sağ tıklayın ve Görevler / Komut Dosyaları Oluştur öğesini seçin. Sihirbazı izleyin ve veri yapısını yabancı anahtarlara göre doğru sırada yeniden düzenleyen bir komut dosyası alacaksınız. "Komut Dosyası Seçeneklerini Ayarla" başlıklı sihirbaz adımında "Gelişmiş" i seçin ve "Komut dosyası için veri türleri" seçeneğini "Şema ve veri" olarak değiştirin

İPUCU: Son adımda "Yeni Sorgu Penceresine Komut Dosyası" nı seçin, bu şekilde çok daha hızlı çalışacaktır.


18
Sadece gelişmiş seçeneklere girmeyi ve sadece şemaya değil aynı zamanda veriye komut dosyası eklemeyi de unutmayın.
RomanSt

2
@romkyns tüm oyları hak ediyor! "Komut dosyası için veri türleri" tam seçenek adıdır. "Şema ve veri" yi seçmek isteyeceksiniz.
solidau

2
SSMS'den oluşturulan komut dosyalarındaki ana sorun, bağımlılıkları hesaba katmak için doğru şekilde sıralanmamış olmalarıdır. Bu, el ile yapabileceğiniz küçük veritabanları için bir sorun değil, ancak veritabanı 50'den fazla nesneyi aldığında kesinlikle bir sorundur. Şimdiye kadar başarıyla bunun için ApexSQL Script kullandık . Bu birinci sınıf bir araçtır, ancak işi halletmek için deneme modunda kullanabilirsiniz. Bence Kırmızı Kapı da benzer bir araca sahip.
David Smithers,

34

SQL Server Veritabanı Yayımlama Sihirbazı'nı deneyin . Bağımlılıktan dolayı tek seferde çalışmasını sağlamak için komut dosyasını yeniden sıralamanız gerekebilir, ancak şemanızı ve verilerinizi içerecektir.

Yüklü 2005 SQL XMO nesnelerine sahip değilseniz , sihirbazı çalıştırdığınızda bir hata alırsınız . Microsoft SQL Server 2005 Yönetim Nesneleri Koleksiyonu'nu isteyeceksiniz


5
Aslında, betiği yeniden düzenlemek zorunda değilsiniz, çünkü tüm kısıtlamaları bırakıyor, şema oluşturuyor, verileri ekliyor ve son olarak kısıtlamaları yeniden oluşturuyor.
Daniel Silveira

Korku veren, bu oldukça zarif
Bip bip

Bu, yalnızca SQL Server 2015'i destekleyen harika bir araçtır. Peki ya 2008 ve sonrası?
Nam G VU



6

DBSourceTools'u deneyin . Kaynak veritabanını kodlamak ve hedef veritabanına yeniden dağıtmak için tasarlanmıştır. Bu şema ve veri komut dosyası.


6

Önerilen çözüm yalnızca sql 2000 ve 2005’te çalışır. Bunu SQL 2008’de yapmak istiyorsanız,

Başka bir eklenti olmadan SQL 2008 ile yapabilirsiniz. Veritabanına sağ tıklayın ve "Görevler -> Script Oluştur ..." seçeneğini seçin. Veritabanını ve ne yedeklemek istediğinizi seçin. İleri'yi tıklayın ve "Komut Dosyası Verileri" ni true olarak ayarlayın.

Bağlantıda ek belgeler:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema- depolanmış işlem fonksiyonları tetikleyen masaları-incelemeler-kısıtlamalar-ve-tüm diğer veritabanı-nesneleri /



2

SQL Server Veritabanı Yayımlama Sihirbazı gerçekten de bunu yapmanın en iyi yolu gibi görünüyor. Bununla ilgili sorun, Windows 7'de çalışıyor görünmüyor olmasıdır. Kullanmak için eski bilgisayarımı kullanmak zorunda kaldım. Olumlu tarafı, 2000 gibi eski SQL Server sürümleriyle çalışır.

Daha yeni SQL sürümleri ve işletim sistemleri için, bu yazılımın içine bakmaya değer olabilir: http://sqlbackupandftp.com/


0

Ombelt, MS SQL server DB'lerini dışa aktarmak için güzel bir araç. www.ombelt.com

diğer DB'nin döküm tesislerine çok benziyor.

Benim için çalışıyor.


0

Microsoft SQL Server Şema Dökümü projesini kontrol edin ( mssql-schema-dumpGitHub'daki araç ).

Kullanımı: mssqldump -h data-source-host -u username -p password [-d path/for/files] [-c] [-s] [-a] [-b DB1[,DB2[,DB3]]]

İhracat şunları destekliyor:

  • DB: Şema, Kullanıcı Tipleri, Kullanıcı Tablo Tipleri, Tetikleyiciler, Tam Metin Katalogları, Tam Metin Durdurma Listeleri, Saklı Prosedürler, Fonksiyonlar
  • DB.Tables: Şema, Tetikleyiciler, Dizinler, DRI, İstatistik
  • DB.Views: Şema, Tetikleyiciler, Dizinler, DRI, İstatistik
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.