Saya memiliki database dan tabel SQL yang ingin saya gandakan di SQL Server lain. Saya ingin membuat skrip SQL yang membuat database dan tabel dalam satu skrip.
Saya dapat membuat skrip "Buat" menggunakan SQL Management Studio untuk setiap kasus (Database dan Tabel), tetapi saya ingin tahu apakah menggabungkan kedua skrip "Buat" ke dalam skrip tunggal sudah cukup.
Terima kasih.
sql
sql-server
tony
sumber
sumber
Jawaban:
Di SQL Server Management Studio, Anda dapat mengklik kanan pada database yang ingin Anda gandakan, dan pilih "Script Database sebagai" agar alat membuat file SQL yang sesuai untuk mereplikasi database tersebut di server lain. Anda dapat mengulangi proses ini untuk setiap tabel yang ingin Anda buat, lalu menggabungkan file ke dalam satu file SQL. Jangan lupa untuk menambahkan pernyataan using setelah Anda membuat Database Anda, tetapi sebelum pembuatan tabel apa pun.
Di versi SQL Server yang lebih baru, Anda bisa mendapatkan ini dalam satu file di SSMS.
Ini akan meluncurkan wizard di mana Anda dapat membuat skrip seluruh database atau hanya sebagian. Tampaknya tidak ada cara T-SQL untuk melakukan ini.
sumber
Meskipun jawaban Clayton akan membawa Anda ke sana (pada akhirnya), di SQL2005 / 2008 / R2 / 2012 Anda memiliki opsi yang jauh lebih mudah:
Klik kanan pada Database, pilih
Tasks
dan kemudianGenerate Scripts
, yang akan meluncurkan Script Wizard. Ini memungkinkan Anda untuk menghasilkan satu skrip yang dapat membuat ulang database lengkap termasuk tabel / indeks & batasan / prosedur tersimpan / fungsi / pengguna / dll. Ada banyak opsi yang dapat Anda konfigurasikan untuk menyesuaikan keluaran, tetapi sebagian besar sudah cukup jelas.Jika Anda senang dengan opsi default, Anda dapat melakukan seluruh pekerjaan dalam hitungan detik.
Jika Anda ingin membuat ulang data dalam database (sebagai rangkaian INSERTS), saya juga akan merekomendasikan Paket Alat SSMS (Gratis untuk versi SQL 2008, Dibayar untuk versi SQL 2012).
sumber
Penjelasan yang sangat baik dapat ditemukan di sini: Membuat skrip di SQL Server Management Studio
Courtesy Ali Issa Inilah yang harus Anda lakukan:
Jika Anda ingin membuat skrip yang hanya menghasilkan tabel (tidak ada data), Anda dapat melewati bagian lanjutan dari instruksi!
sumber
Tidak yakin mengapa SSMS tidak memperhitungkan urutan eksekusi akun tetapi tidak begitu saja. Ini bukan masalah untuk database kecil tetapi bagaimana jika database Anda memiliki 200 objek? Dalam kasus seperti itu, urutan eksekusi penting karena tidak mudah untuk melalui semua ini.
Untuk skrip tidak berurutan yang dibuat oleh SSMS, Anda dapat mengikuti
a) Jalankan skrip (beberapa objek akan disisipkan beberapa wont, akan ada beberapa kesalahan)
b) Hapus semua objek dari script yang telah ditambahkan ke database
c) Kembali ke a) sampai semuanya pada akhirnya dieksekusi
Opsi alternatif adalah dengan menggunakan alat pihak ketiga seperti ApexSQL Script atau alat lain yang telah disebutkan di utas ini (Paket alat SSMS, Gerbang Merah, dan lainnya).
Semua ini akan menangani dependensi untuk Anda dan menghemat lebih banyak waktu.
sumber
Ya, Anda dapat menambahkan sebanyak mungkin pernyataan SQL ke dalam satu skrip sesuai keinginan. Hanya satu hal yang perlu diperhatikan: urutan itu penting. Anda tidak dapat MEMASUKKAN ke dalam tabel sampai Anda MENCIPTAKANnya; Anda tidak dapat mengatur kunci asing hingga kunci utama dimasukkan.
sumber