2010-07-15 9 views
8

Ich möchte eine BAT-Datei ein SQL-Server-Skript öffnen lassen. Zur Zeit habe ich diesen Code in der SQL-Datei:Wie führe ich ein Skript mit einer BAT-Datei aus?

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 

Wie öffne ich diese SQL-Datei aus einer BAT-Datei?

ich derzeit versuche es so zu laufen:

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

aber OSQL existiert nicht in dem BINN-Verzeichnis,

Antwort

16

Sie sollten die sqlcmd Kommandozeilen-Tool aus dem Batch-Datei aufrufen. Angenommen, Ihre SQL-Datei ist „backup.sql“, würde die Befehlszeile so etwas wie:

sqlcmd -E -S yoursqlinstance -i backup.sql 

-E größte Verbindung verwendet, ersetzt mit -U und -P, wenn Sie einen SQL-Benutzername und Passwort angeben müssen. Siehe auch this article with examples.

+0

+1: ich war zu langsam, zusätzliche Link: http://msdn.microsoft.com/en-us/library/ms165702.aspx –

+0

Guter Link, fügte es der Antwort hinzu. – driis

+0

Guten Tag, Sir, aber wie ist die ganze Programmierung, wie man die Batch-Datei erstellt? – WTFZane

0

Start> Ausführen> Typ Cmd.

MyDrive: \ myPath \ mybat.bat

=)

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

Ersetzen/E mit/U und/P wenn Sie nicht vertrauenswürdige Verbindung

3

Wenn Sie ein möchten viel bessere Antwort, hier ist es:

@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 
Verwandte Themen