2010-07-15 18 views
8

Mi piacerebbe avere un file BAT per aprire uno script del server sql. Attualmente ho questo codice nel file sql:Come si esegue uno script utilizzando un file BAT?

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 

Come si apre questo file SQL da un file BAT?

Attualmente sto provando a fare funzionare in questo modo:

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

ma OSQL non esiste nella directory BINN,

risposta

16

Si dovrebbe richiamare lo strumento sqlcmd della riga di comando dal file batch. Assumendo che il file SQL è "backup.sql", la riga di comando sarebbe qualcosa di simile:

sqlcmd -E -S yoursqlinstance -i backup.sql 

-E utilizza connessione trusted, sostituire con -U e -P se è necessario specificare un nome utente e una password SQL. Vedi anche this article with examples.

+0

+1: ero troppo lento, ulteriore link: http://msdn.microsoft.com/en-us/library/ms165702.aspx –

+0

Buon link, aggiunto alla risposta. – driis

+0

Buongiorno signore, ma com'è l'intera codifica su come creare il file batch? – WTFZane

0

Start> Esegui> Digitare Cmd.

MyDrive: \ MyPath \ Mybat.bat

=)

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

Sostituire/E con/U e/P se non avete fiducia connessione

3

Se si desidera un risposta molto meglio, qui è:

@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 
Problemi correlati