2012-01-13 14 views
14

10 + SQL script ürünüm var. Gidip 1.Bir toplu iş dosyası kullanarak birden çok SQL komut dosyası nasıl çalıştırılır?

benim tüm komut dosyalarını 1 çalıştırmak istemiyorum

i SQL Management studio yılında arka arkaya tüm komut dosyalarını çalıştırabilirsiniz orada bir yolu var mı.

this numaralı ilanı bulundu. Bir toplu iş dosyası oluşturmak daha kolay görünüyor.

@echo off 
ECHO %USERNAME% started the batch process at %TIME% >output.txt 


for %%f in (*.sql) do (
(
sqlcmd.exe -S servername -E -d databasename -i %%f >>output.txt 
) 


pause 

sunucuadı'nı ve databasename değiştirilmesi, ama çalışmıyor gibi görünüyor: Bu, tüm olup

İhtiyacınız.

Herhangi bir fikrin var mı?

+0

Toplu iş dosyasını çalıştırdığınızda çıkış.txt dosyasında ne görünür? –

+0

@MarkBannister Willem, parti işlemini 10: 50: 30.46'da başlattı. Sonra başka hiçbir şey olmuyor – Willem

+0

Toplu iş dosyasındaki '@echo kapalı 'komutunu kaldırır ve tekrar denerseniz hangi çıktı elde edersiniz? Ayrıca, toplu iş dosyasının başlangıcına 'ECHO% PATH%' eklemeyi deneyin ve SQLCMD.EXE yolunun dahil edildiğini kontrol edin. –

cevap

3

ile bunu. Komut dosyalarını otomatik olarak çalıştırmak için bir program planı da oluşturabilirsiniz.

http://msdn.microsoft.com/en-us/library/aa174792(v=sql.80).aspx

+0

Lütfen güncellenmiş soruma bir göz atın. – Willem

+0

Komut dosyasından bir hata mesajınız var mı? Çalıştırmak istediğiniz sql betiklerini gösteren '* .sql' yolunu kontrol ettiniz. –

+0

Hata mesajı yok. Yollar çok iyi – Willem

5

Evet, mümkün. Bunu ile yapabilirsiniz: SQLCMD r komutu.

şiddetle Sen tüm Scripts çağırmak için bir strored Prosedürü oluşturabilir bu yazıyı okumanızı tavsiye ve SQLCMD

http://www.mssqltips.com/sqlservertip/1543/using-sqlcmd-to-execute-multiple-sql-server-scripts/

+0

Lütfen güncellenmiş soruma bir göz atın. – Willem

+1

Bu, tüm komut dosyasını işlemek için kullanılabilir mi? ve herhangi bir komut dosyasında herhangi bir hata varsa, geri al ve yürütmeyi durdur. –

9

Orada, eşsiz parantez var. (* .sql) içinde %% f

deneyin yapmak sqlCmd.exe -S servername -E -d databasename -i %% f >> Ben sadece bir .cmd bunu kurtardı

output.txt dosya ve çalışıyor gibi görünüyor.

2

Burada kaynak kodu http://scriptzrunner.codeplex.com/

Bu yardımcı program C# yazılmış bir açık kaynak aracıdır ve sürükle ve pek sql dosyaları açılır ve bir veritabanına karşı yayınlanmaya başlamasını sağlar.

1

Muhtemelen bunu zaten biliyorsunuzdur, bunu yapmazsanız, gönderdiğiniz komut yalnızca SQL Server yüklü olan makinelerde çalışacaktır.

0

Bazı toplu hüner

cd %~dp0 //use this if you use 'for xxx in', it solved most of my problems 

ECHO %USERNAME% started the batch process at %TIME% >output.txt 


for %%f in (*.sql) do (
(
sqlcmd.exe -S servername -E -d databasename -i %%f >>output.txt 
) 
echo %errorlevel% 
pause 
0

Sen Batch Compiler eklenti SMS'ler, bu, aynı anda birden çok komut çalıştırmak haydi SQLCMD komut dosyalarını oluşturmak veya * .sql dosyasına bunları pekiştirmek kullanabilirsiniz.

İlgili konular