Saya ingin mengotomatiskan pembuatan skrip di SQL Server Management Studio 2008.
Saat ini yang saya lakukan adalah:
- Klik kanan pada database saya, Tasks, "Generate Scripts ..."
- secara manual pilih semua opsi ekspor yang saya butuhkan, dan tekan pilih semua pada tab "pilih objek"
- Pilih folder ekspor
- Akhirnya tekan tombol "Selesai"
Apakah ada cara untuk mengotomatiskan tugas ini?
Edit: Saya ingin membuat skrip kreasi , bukan mengubah skrip.
Jawaban:
Apa yang disebutkan Brann dari Visual Studio 2008 SP1 Team Suite adalah versi 1.4 dari Database Publishing Wizard. Ini diinstal dengan sql server 2008 (mungkin hanya profesional?) Ke \ Program Files \ Microsoft SQL Server \ 90 \ Tools \ Publishing \ 1.4. Panggilan VS dari server explorer hanya memanggil ini. Anda dapat mencapai fungsi yang sama melalui baris perintah seperti:
Saya tidak tahu apakah v1.4 memiliki masalah yang sama dengan v1.1 (pengguna diubah menjadi peran, batasan tidak dibuat dalam urutan yang benar), tetapi ini bukan solusi bagi saya karena tidak membuat skrip objek ke file yang berbeda seperti opsi Tasks-> Generate Scripts di SSMS. Saat ini saya menggunakan versi Scriptio yang dimodifikasi (menggunakan MS SMO API) untuk bertindak sebagai pengganti yang lebih baik untuk wizard penerbitan database (sqlpubwiz.exe). Saat ini tidak dapat ditulis dari baris perintah, saya mungkin menambahkan kontribusi itu di masa mendatang.
Scriptio awalnya diposting di blog Bill Graziano, tetapi kemudian dirilis ke CodePlex oleh Bill dan diperbarui oleh orang lain. Baca diskusi untuk mengetahui cara mengompilasi untuk digunakan dengan SQL Server 2008.
http://scriptio.codeplex.com/
EDIT: Saya sudah mulai menggunakan produk Perbandingan SQL RedGate untuk melakukan ini. Ini adalah pengganti yang sangat bagus untuk semua wizard penerbitan sql yang seharusnya. Anda memilih database, backup, atau snapshot sebagai sumber, dan folder sebagai lokasi keluaran dan membuang semuanya dengan baik ke dalam struktur folder. Ini kebetulan memiliki format yang sama dengan produk mereka yang lain, Kontrol Sumber SQL, menggunakan.
sumber
SqlPubwiz memiliki opsi yang sangat terbatas dibandingkan dengan pembuatan skrip di SSMS. Sebaliknya, opsi yang tersedia dengan SMO hampir sama persis dengan yang ada di SSMS, menunjukkan bahwa kode itu bahkan mungkin sama. (Saya berharap MS tidak menulisnya dua kali!) Ada beberapa contoh di MSDN seperti ini yang menunjukkan tabel skrip sebagai objek individual. Namun jika Anda ingin semuanya dibuat skrip dengan benar dengan skema 'lengkap' yang menyertakan objek 'DRI' (Integritas Referensial Deklaratif) seperti kunci asing, maka tabel skrip secara individual tidak akan menjalankan dependensi dengan benar. Saya merasa perlu untuk mengumpulkan semua URN dan menyerahkannya ke skrip sebagai array. Kode ini, dimodifikasi dari contoh,
sumber
Microsoft.SqlServer.Management.SqlScriptPublish.ScriptPublishWizard
dari rakitan C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ Microsoft.SqlServer.Management.SqlScriptPublishUI.dll. Inilah yang digunakan SSMS. (Alternatifnya, Anda dapat melihat kelasMicrosoft.SqlServer.Management.UI.GenerateScript
dari rakitan C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ ReplicationDialog.dll.)Saya menulis utilitas baris perintah open source bernama SchemaZen yang melakukan ini. Ini jauh lebih cepat daripada membuat skrip dari studio manajemen dan keluarannya lebih ramah kontrol versi. Ini mendukung skrip skema dan data.
Untuk menghasilkan skrip, jalankan:
Kemudian untuk membuat ulang database dari skrip, jalankan:
sumber
Anda dapat menggunakan SQL Server Management Object (SMO) untuk mengotomatiskan tugas manajemen SQL Server 2005 termasuk membuat skrip: http://msdn.microsoft.com/en-us/library/ms162169.aspx .
sumber
Jika Anda seorang pengembang, pasti menggunakan SMO. Berikut link ke kelas Scripter, yang merupakan titik awal Anda:
Kelas Scripter
sumber
Saya tidak melihat PowerShell dengan SQLPSX disebutkan dalam salah satu jawaban ini ... Saya pribadi belum pernah bermain dengannya tetapi terlihat sangat mudah digunakan dan cocok untuk jenis tugas otomatisasi ini, dengan tugas seperti:
(ref: http://www.sqlservercentral.com/Forums/Topic1167710-1550-1.aspx#bm1168100 )
Halaman proyek: http://sqlpsx.codeplex.com/
Keuntungan utama dari pendekatan ini adalah menggabungkan konfigurabilitas / kemampuan penyesuaian menggunakan SMO secara langsung, dengan kenyamanan dan kemudahan pemeliharaan menggunakan alat sederhana yang ada seperti Database Publishing Wizard.
sumber
Di Alat> Opsi> Desainer> Desainer Tabel dan Database, terdapat opsi untuk 'Buat skrip perubahan secara otomatis' yang akan menghasilkan satu untuk setiap perubahan yang Anda buat pada saat Anda menyimpannya.
sumber
Anda dapat melakukannya dengan kode T-SQL menggunakan tabel INFORMATION_SCHEMA.
Ada juga alat pihak ketiga - Saya suka Apex SQL Script tepat untuk penggunaan yang sedang Anda bicarakan. Saya menjalankannya sepenuhnya dari baris perintah.
sumber
Coba alat baris perintah SQL Server baru untuk membuat skrip T-SQL dan memantau Tampilan Manajemen Dinamis.
Bekerja untuk saya seperti pesona. Ini adalah alat berbasis python baru dari Microsoft yang berjalan dari baris perintah. Semuanya bekerja seperti yang dijelaskan di halaman Microsoft (lihat tautan di bawah) Bekerja untuk saya dengan server SQL 2012.
Anda menginstalnya dengan pip:
Gambaran umum parameter perintah seperti biasa dengan h untuk bantuan:
Petunjuk: Jika Anda masuk ke SQL-Server melalui otentikasi Windows, tinggalkan Nama pengguna dan kata sandi.
https://cloudblogs.microsoft.com/sqlserver/2017/05/17/try-new-sql-server-command-line-tools-to-generate-t-sql-scripts-and-monitor-dynamic-management- dilihat /
sumber
Jika Anda menginginkan solusi Microsoft, Anda dapat mencoba: Microsoft SQL Server Database Publishing Wizard 1.1
http://www.microsoft.com/downloads/details.aspx?FamilyId=56E5B1C5-BF17-42E0-A410-371A838E570A&displaylang=en
Ini membuat proses batch yang dapat Anda jalankan kapan saja Anda perlu membangun kembali skrip.
sumber
Saya telah menggunakan DB Comparer - Gratis dan tidak merepotkan skrip seluruh DB dan dapat dibandingkan dengan DB lain dan juga menghasilkan skrip Diff. Sangat baik untuk skrip perubahan Pengembangan ke Produksi. http://www.dbcomparer.com/
sumber
Ada juga alat baris perintah sederhana yang saya buat untuk kebutuhan saya.
http://mycodepad.wordpress.com/2013/11/18/export-ms-sql-database-schema-with-c/
Itu dapat mengekspor seluruh db, dan mencoba mengekspor objek terenkripsi. Semuanya disimpan dalam folder dan file sql terpisah untuk perbandingan file yang mudah.
Kode juga tersedia di github.
sumber
Dari Visual Studio 2008 SP1 TeamSuite:
Di tab Server Explorer / Koneksi Data, ada alat terbitkan ke penyedia yang melakukan hal yang sama seperti "Wisaya Penerbitan Basis Data Microsoft SQL Server", tetapi kompatibel dengan MS Sql Server 2008.
sumber
Saya menggunakan VS 2012 (untuk DB di MSSQL Server 2008) membandingkan database memiliki pilihan untuk menyimpannya, perbandingan dan pilihan. Ini pada dasarnya adalah apa pengaturan Anda untuk pengiriman. Setelah itu Anda bisa melakukan update atau generate script.
Saya hanya merasa agak canggung untuk memuatnya dari file nanti (seret dan lepas dari windows explorer) karena saya tidak melihat file di explorer solusi.
sumber