Saya memiliki sejumlah file .sql yang harus saya jalankan untuk menerapkan perubahan yang dibuat oleh pengembang lain pada database SQL Server 2005. File diberi nama sesuai dengan pola berikut:
0001 - abc.sql
0002 - abcef.sql
0003 - abc.sql
...
Apakah ada cara untuk menjalankan semuanya sekaligus?
for %%G in (*.sql) do sqlcmd /S servername /d databaseName -U username -P "password" -i"%%G"
Gunakan UNTUK . Dari prompt perintah:
sumber
for %f in (*.sql) do sqlcmd /S <servername> /d <dbname> /E /i "%f" >> sql.log 2>&1)
Anda dapat membaca lebih lanjut tentang pengalihan keluaran di siniDi SQL Management Studio, buka kueri baru dan ketik semua file seperti di bawah ini
Klik pada Mode SQLCMD; file akan dipilih dalam warna abu-abu seperti di bawah ini
sumber
Pastikan Anda mengaktifkan SQLCMD dengan mengklik opsi Query> SQLCMD mode di studio manajemen.
Misalkan Anda memiliki empat file .sql (
script1.sql,script2.sql,script3.sql,script4.sql
) dalam sebuah folderc:\scripts
.Buat file skrip utama (Main.sql) dengan yang berikut:
Simpan Main.sql di c: \ scripts itu sendiri.
Buat file batch
ExecuteScripts.bat
dengan nama berikut:Ingatlah untuk mengganti
<YourDatabaseName>
dengan database yang Anda inginkan untuk menjalankan skrip Anda. Misalnya, jika database adalah "Karyawan", perintahnya adalah sebagai berikut:Jalankan file batch dengan mengklik dua kali yang sama.
sumber
-b
contoh:SQLCMD -b -i "file 1.sql","file 2.sql"
Anda dapat menggunakan ApexSQL Propagate . Ini adalah alat gratis yang menjalankan banyak skrip pada banyak database. Anda dapat memilih skrip sebanyak yang Anda butuhkan dan menjalankannya pada satu atau beberapa database (bahkan beberapa server). Anda dapat membuat daftar skrip dan menyimpannya, lalu cukup pilih daftar itu setiap kali Anda ingin menjalankan skrip yang sama dalam urutan yang dibuat (beberapa daftar skrip juga dapat ditambahkan):
Ketika skrip dan database dipilih, mereka akan ditampilkan di jendela utama dan yang harus Anda lakukan adalah mengklik tombol "Execute" dan semua skrip akan dijalankan pada database yang dipilih dengan urutan yang diberikan:
sumber
Pertanyaan Umum
simpan baris di bawah ini di notepad dengan nama batch.bat dan letakkan di dalam folder tempat semua file script Anda berada di sana
CONTOH
untuk %% G dalam (* .sql) lakukan sqlcmd / S NFGDDD23432 / d EMPLYEEDB -i "%% G" jeda
kadang-kadang jika login gagal untuk Anda, silakan gunakan kode di bawah ini dengan nama pengguna dan kata sandi
untuk %% G in (* .sql) lakukan sqlcmd / S NE8148server / d EMPLYEEDB -U Scott -P tiger -i "%% G" pause
Setelah Anda membuat file bat di dalam folder tempat file Script Anda berada di sana, cukup klik pada file bat, skrip Anda akan dieksekusi
sumber
Saya menulis sebuah utilitas open source di C # yang memungkinkan Anda untuk menarik dan melepas banyak file SQL dan mulai menjalankannya pada database.
Utilitas tersebut memiliki beberapa fitur berikut:
sumber
Cara termudah yang saya temukan termasuk langkah-langkah berikut (satu-satunya persyaratan adalah berada di Win7 +):
Kedengarannya panjang, tetapi pada kenyataannya sangat cepat .. (kedengarannya lama seperti yang saya gambarkan bahkan langkah terkecil)
sumber
Yang saya tahu Anda dapat menggunakan perintah osql atau sqlcmd untuk menjalankan beberapa file sql. Kekurangannya adalah Anda harus membuat skrip untuk kedua perintah tersebut.
Menggunakan SQLCMD untuk Menjalankan Beberapa Skrip SQL Server
OSQL (Ini untuk sql server 2000)
http://msdn.microsoft.com/en-us/library/aa213087(v=SQL.80).aspx
sumber
Langkah 1: baris di atas salin ke buku catatan simpan sebagai kelelawar.
langkah2: Dalam folder abc drive d di semua file Sql dalam kueri yang dijalankan di server sql.
step3: Berikan ip Anda, id pengguna dan kata sandi.
sumber
Anda dapat membuat satu skrip yang memanggil semua yang lain.
Letakkan berikut ini ke dalam file batch:
Ketika Anda menjalankan file batch itu akan membuat skrip baru bernama
all.sql
di direktori yang sama di mana file batch berada. Ini akan mencari semua file dengan ekstensi.sql
di direktori yang sama tempat file batch berada.Anda kemudian dapat menjalankan semua skrip dengan menggunakan
sqlplus user/pwd @all.sql
(atau memperluas file batch untuk memanggilsqlplus
setelah membuatall.sql
skrip)sumber
Untuk menjalankan setiap SQLfile di direktori yang sama gunakan perintah berikut:
Perintah ini akan membuat satu file SQL dengan nama setiap file SQL dalam direktori yang ditambahkan dengan "@".
Setelah
all.sql
dibuat cukup jalankanall.sql
dengan SQLPlus, ini akan mengeksekusi setiap file sql di fileall.sql
.sumber
Jika Anda dapat menggunakan SQL Interaktif:
1 - Buat file .BAT dengan kode ini:
2 - Ubah pwd dan Nama Server.
3 - Letakkan file .BAT di folder yang berisi file .SQL dan jalankan.
sumber