2010-07-15 2 views
8

BAT 파일에 SQL Server 스크립트를 열고 싶습니다. 현재이 코드는 SQL 파일에 있습니다.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 

BAT 파일에서이 SQL 파일을 어떻게 열 수 있습니까?

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

을하지만 OSQL은

답변

16

당신은 당신의 배치 파일에서 sqlcmd 명령 줄 도구를 호출 할 필요는 BINN 디렉토리에 존재하지 않습니다

나는 현재 다음과 같이 실행하려합니다.

sqlcmd -E -S yoursqlinstance -i backup.sql 

-E가 신뢰할 수있는 연결을 사용하면 SQL 사용자 이름과 암호를 지정해야하는 경우, -U-P로 대체 : 당신의 SQL 파일을 가정하면 "backup.sql"입니다, 명령 줄 뭔가처럼 될 것입니다. this article with examples을 참조하십시오.

+0

+1 : 너무 느려서 추가 링크가 있습니다 : http://msdn.microsoft.com/en-us/library/ms165702.aspx –

+0

좋은 링크를 답에 추가했습니다. – driis

+0

안녕하십니까. 그러나 배치 파일을 만드는 방법에 대한 전체 코딩은 어떻게되어 있습니까? – WTFZane

0

시작> 실행> 유형 명령.

MyDrive :/U 및/P와 \ MYPATH \ Mybat.bat

=)

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

교체/E는 신뢰할 수없는 경우 연결

3

당신이 원하는 경우 훨씬 더 나은 대답은 여기에 있습니다 :

@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 
관련 문제