Saya memiliki satu set skrip yang perlu dijalankan dalam urutan tertentu. Saya ingin membuat "file utama" yang mencantumkan semua file lain dan urutannya yang benar. Pada dasarnya seperti file sertakan dari C ++ atau ASP / VBScript.
Saya memiliki satu set skrip yang perlu dijalankan dalam urutan tertentu. Saya ingin membuat "file utama" yang mencantumkan semua file lain dan urutannya yang benar. Pada dasarnya seperti file sertakan dari C ++ atau ASP / VBScript.
Jawaban:
Jika Anda menggunakan SQLCMD , Anda bisa menggunakan :r FileName
untuk menyertakan file .sql terpisah.
: r Nama File
Parsing pernyataan T-SQL tambahan dan perintah SQLCMD dari file yang ditentukan oleh FileName ke dalam cache pernyataan. FileName dibaca relatif terhadap direktori startup untuk Visual Studio. File dibaca dan dieksekusi setelah terminator batch ditemukan. Anda dapat mengeluarkan banyak perintah: r. File dapat menyertakan perintah SQLCMD, termasuk terminator batch yang didefinisikan dalam Tools, Options. Anda dapat menggunakan: r dalam skrip pra-penempatan atau pasca-penempatan untuk menyertakan skrip lain.
Dalam arti preprosesor C kuno pasti tidak
Jika Anda memiliki satu set file dengan path absolut yang diberikan, yang ingin Anda sertakan dalam urutan tanpa syarat, Anda dapat menggunakan alat baris perintah sqlcmd atau menggunakan SSMS dalam sqlcmdmode seperti yang disebutkan oleh @mfredrickson dan @Marian.
Tetapi jika Anda menginginkan jalur relatif atau kondisional, Anda perlu menggunakan beberapa wrapper yang memanggil sqlcmd (atau salah satu dari isql atau osql pendahulunya yang sudah usang).
Saat ini di pekerjaan saya dalam situasi ini, saya sedang meninjau dan memperluas kode lama dan hta. Saya tidak sepenuhnya bahagia, tetapi ini adalah keputusan pragmatis. Ini berfungsi dan pengguna akhir di rumah dengan GUI hta dan tidak ada instalasi perangkat lunak tambahan yang diperlukan.
Untuk desain baru saya akan mulai berpikir tentang menggunakan WPF dan PowerShell untuk membungkus panggilan sqlcmd, tetapi dengan pelanggan kami saat ini saya tidak dapat menganggap kehadiran PowerShell V2.
Bahkan pada masa-masa sebelumnya kami menulis kumpulan cmd sederhana untuk tujuan ini, beberapa darinya masih digunakan.
Saya kira ada alat saat ini, terutama yang menargetkan Alur Kerja, yang mungkin cocok di sini. Saya tidak terbiasa dengan itu.
Bersamaan dengan mode SQLCMD di Management Studio, Anda juga dapat menggunakan file batch untuk digunakan sebagai file master untuk mengatur dan memanggil semua file sql Anda dengan menggunakan utilitas SQLCMD .
Mode SQLCMD adalah simulasi penggunaan utilitas di dalam Management Studio, jadi tidak ada perbedaan besar antara mode. Kecuali bahwa kadang-kadang saya lebih suka menjalankan batch (tidak ada lagi pembukaan M Studio ... memuat db yang benar ... dll). Saya lebih suka mengkonfigurasi semuanya dalam batch, termasuk file output.
Saya setuju, preprocessor T-SQL sangat dibutuhkan. Saya mengembangkan sendiri di C #, yang menghabiskan waktu satu jam. Selain mengontrol urutan pelaksanaan skrip SQL, ini juga memungkinkan saya untuk memiliki makro yang terlihat seperti skalar UDF dan nyaman digunakan, tetapi berkinerja secepat UDF inline.
Saya suka bernd_k jawaban . Bergantung pada bagaimana Anda menamai skrip Anda, seperti memasukkan angka, SQL Server PowerShell (SQLPS) dapat digunakan jika Anda menjalankan SQL Server 2008 atau lebih tinggi. Kemudian bahkan jika Anda menggunakan SQL 2005 Anda bisa menggunakan PowerShell dan SMO untuk 2005.
Catatan: Saya percaya SQLCMD pada akhirnya akan dimasukkan dalam daftar penyusutan dan sedang diganti dengan SQLPS, PowerShell.
Ada beberapa opsi lain juga.
SQLCMD
beri tahu saya, karena sebagian besar yang saya temukan merujuk pada PowerShell . Saya juga tidak melihat referensi di mana sqlcmd
digunakan dengan SSDT kecuali mungkin untuk perbandingan skema, tapi saya tidak pernah menggunakan skrip yang dihasilkan.