2010-07-15 32 views
8

Bir BAT dosyasının bir sql sunucu komut dosyasını açmasını istiyorum. Şu anda bu kod sql dosyasında var:Bir BAT dosyasını kullanarak bir komut dosyasını nasıl çalıştırırım?

declare @path varchar(255), @mydb varchar(50) 
SELECT @mydb = 'timeclockplus' 
select @path = 'C:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Backup\' 
      + @mydb + '-' + convert(varchar(8),getdate(),112) + '.bak' 
BACKUP DATABASE @mydb TO DISK = @path 

Bu SQL dosyasını bir BAT dosyasından nasıl açarım?

C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql -E 
    -S Sql server-hl7\timeclockplus timeclockplus.sql -oresults.txt 

ama OSQL

cevap

16

Sen toplu dosyasından sqlcmd komut satırı aracı çağırmak gerektiğini BINN dizinde yok:

Şu anda böyle çalıştırmak çalışıyorum.

sqlcmd -E -S yoursqlinstance -i backup.sql 

-E güvenilir bağlantı kullanır, bir SQL kullanıcı adı ve şifresini belirtmek gerekirse, -U ve -P ile değiştirin: sql dosyasını ele alalım "backup.sql" dir, komut satırı gibi bir şey olurdu. Ayrıca bkz. this article with examples.

+0

+1: Ben çok yavaş, ek bağlantı oldu: http://msdn.microsoft.com/en-us/library/ms165702.aspx –

+0

İyi bağlantı, cevaba ekledi. – driis

+0

İyi günler efendim, Ama toplu iş dosyasının nasıl oluşturulacağının tamamı nasıl kodlanıyor? – WTFZane

0

Başlat> Çalıştır> Cmd yazın.

MyDrive:/U ve/P ile \ MyPath \ Mybat.bat

=)

4
sqlcmd -S 127.0.0.1 /E -i MySqlScript.sql 

değiştirin/E güvenilen gelmiş yoksa bağlantı

3

Bir isterseniz çok daha iyi cevap, işte burada:

@echo off 
SETLOCAL ENABLEDELAYEDEXPANSION 
:: batch file for sql query 
SET FIELDVAL=Empty 
SET DBNAME=MYDB 
SET SQLSTRING=SELECT column_name(s)^ 
FROM table_name1^ 
INNER JOIN table_name2^ 
ON table_name1.column_name=table_name2.column_name^ 
AND table_name2.field=%FIELDVAL% 
ECHO !SQLSTRING! 

ECHO. 
sqlcmd.exe -b -S localhost -E -d !DBNAME! -Q "!SQLSTRING!" -W 
ECHO Query is done. Hit any key to close this window.... 
pause>nul 
İlgili konular