Bagaimana cara membuang database Microsoft SQL Server ke skrip SQL?

125

Apakah ada cara untuk mengekspor database Microsoft SQL Server ke skrip sql?

Saya mencari sesuatu yang berperilaku mirip dengan mysqldump, mengambil nama basis data, dan menghasilkan satu skrip yang akan menciptakan kembali semua tabel, prosedur yang tersimpan, masukkan kembali semua data dll.

Saya telah melihat http://vyaskn.tripod.com/code.htm#inserts , tetapi saya idealnya menginginkan sesuatu untuk menciptakan kembali semuanya (bukan hanya data) yang bekerja dalam satu langkah untuk menghasilkan skrip akhir.

Matt Sheppard
sumber
@ Mat Ya, itu tidak mengekspor data. Itu sebabnya saya menyebutkan bahwa Anda harus menggabungkannya dengan skrip yang Anda sarankan. Metode ini memang membangun skrip dalam urutan yang benar.
Julio César
Sebenarnya, di Mangement Studio 2008, Anda hanya perlu mengaktifkan opsi "ekspor data", dan skrip akan berisi skema dan masukkan pernyataan.
user24161
@MattSheppard harap pertimbangkan untuk menerima salah satu jawaban
030

Jawaban:

111

Di SQL Server Management Studio klik kanan database Anda dan pilih Tugas / Hasilkan Script. Ikuti wizard dan Anda akan mendapatkan skrip yang membuat ulang struktur data dalam urutan yang benar sesuai dengan kunci asing. Pada langkah panduan berjudul "Tetapkan Opsi Scripting" pilih "Lanjutan" dan ubah opsi "Jenis data ke skrip" menjadi "Skema dan data"

TIP: Pada langkah terakhir pilih "Script to a New Query Window", itu akan bekerja lebih cepat seperti itu.

Julio César
sumber
18
Hanya ingat untuk masuk ke opsi lanjutan dan kirim ke skrip bukan hanya skema, tetapi juga data.
RomanSt
2
@romkyns layak mendapatkan semua suara! "Jenis data ke skrip" adalah nama opsi yang tepat. Anda akan ingin memilih "Skema dan data."
solidau
2
Masalah utama dengan skrip yang dihasilkan dari SSMS adalah bahwa skrip tersebut tidak dipesan dengan benar untuk memperhitungkan dependensi. Ini bukan masalah untuk database kecil di mana Anda dapat melakukan ini secara manual tetapi jelas merupakan masalah ketika database mendapatkan lebih dari 50 objek. Sejauh ini kami berhasil menggunakan Script ApexSQL untuk ini. Ini adalah alat premium tetapi Anda dapat menggunakannya dalam mode uji coba untuk menyelesaikan pekerjaan. Saya pikir Red Gate juga memiliki alat serupa.
David Smithers
34

Coba Sql Server Database Publishing Wizard . Anda mungkin perlu memesan ulang skrip untuk membuatnya berjalan dalam satu pemotretan karena ketergantungan tetapi itu akan mencakup skema dan data Anda.

Jika Anda belum menginstal objek SQL XMO 2005, Anda akan mendapatkan kesalahan saat menjalankan wisaya . Anda akan menginginkan Koleksi Objek Manajemen Microsoft SQL Server 2005

Rob Allen
sumber
5
Sebenarnya, Anda tidak perlu menyusun ulang skrip, karena skrip ini menghilangkan semua kendala, membuat skema, memasukkan data, dan, akhirnya, membuat ulang kendala.
Daniel Silveira
Luar biasa, itu cukup rapi
Bip bip
Ini adalah alat yang hebat meskipun hanya mendukung SQL Server 2015. Bagaimana dengan 2008 dan yang lebih baru?
Nam G VU
12

Saya menemukan SQL Dumper cukup bermanfaat. Ini gratis sehingga Anda dapat mencobanya. Ini memungkinkan Anda memilih tabel dan kolom basis data, tampilan, dan bahkan hasil kueri khusus sebagai pernyataan penyisipan SQL.

Marc Climent
sumber
Versi stabil terakhir tidak berfungsi dengan prosedur tersimpan.
VMAtm
1
Versi terakhir dapat diunduh dari download.cnet.com/SQL-Dumper/3000-10254_4-10514574.html
Raynet
7

Tidak menemukan alat yang tepat, saya memutuskan untuk membuat sendiri: utilitas baris perintah sqlserverdump. Lihat di http://sqlserverdump.codeplex.com/ . Ini akan membuat ulang skema dan data dalam satu langkah.

Daniel
sumber
6

Coba DBSourceTools . Ini dirancang untuk skrip sumber database, dan digunakan kembali ke database target. Itu skrip skema dan data.


sumber
6

Solusi yang disarankan hanya berfungsi pada sql 2000 dan 2005. Jika Anda ingin melakukan ini pada SQL 2008,

Anda dapat melakukannya dengan SQL 2008 tanpa plug in lainnya. Klik kanan pada database dan pilih "Tugas -> Hasilkan Script ...". Pilih basis data dan apa yang ingin Anda buat cadangannya. Klik berikutnya dan atur "Script Data" menjadi true.

Dokumentasi lebih lanjut di tautan:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema- disimpan-prosedur-fungsi-pemicu-tabel-tampilan-kendala-dan-semua-database-objek lainnya /

tzerb
sumber
2

Wisaya Penerbitan Basis Data SQL Server tampaknya memang cara terbaik untuk melakukannya. Masalah dengan ini adalah sepertinya tidak berjalan pada Windows 7. Saya harus menggunakan komputer lama saya untuk menggunakannya. Di sisi positif, ini bekerja dengan versi SQL Server yang lebih lama seperti 2000.

Untuk versi SQL yang lebih baru dan sistem operasi, perangkat lunak ini mungkin layak untuk dilihat: http://sqlbackupandftp.com/


sumber
0

Ombelt membuat alat yang bagus untuk mengekspor MS SQL server DB. www.ombelt.com

banyak seperti fasilitas pembuangan DB lainnya.

Bekerja untukku.

Tim Williscroft
sumber
0

Periksa proyek Dump Skema Microsoft SQL Server ( mssql-schema-dumpalat di GitHub ).

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

Ekspor mendukung:

  • DB: Skema, Jenis Pengguna, Jenis Tabel Pengguna, Pemicu, Katalog Teks Lengkap, Daftar Stop Teks Lengkap, Prosedur Tersimpan, Fungsi
  • DB.Tabel: Skema, Pemicu, Indeks, DRI, Statistik
  • DB.Views: Skema, Pemicu, Indeks, DRI, Statistik
kenorb
sumber