日期:2014-05-17  浏览次数:20639 次

如何将批处理(.bat)文件在SQL代理作业命令中执行?
我编辑了一个backup.bat文件,该backup.bat脚本是可以执行的。

backup.bat代码如下:
@echo off
cd /e e:/
set UNAME=sql登录名
set PNAME=sql密码
set SNAME=sql服务器名称
set h=%time:~0,2%
if %time:~0,2% lss 10 h=%time:~1,1%
set bak_filename=%h_123%%time:~3,2%%time:~4,0%
bcp [BackupDB].[dbo].[TestTb] out BackupTb("%bak_filename%").xls -U%UNAME% -P%PNAME% -S%SNAME% -c -b50000

希望结合SQL代理作业下可以定时执行该备份,但是作业步骤下命令不识别@echo off,作业失败!
SQL 脚本 .bat

------解决方案--------------------

exec master..xp_cmdshell '[路径]\[文件名].bat'

------解决方案--------------------
SQL Server 2005 Surface Area Configuration
   Database Engine 
     xp_cmdshell 
       Enable xp_cmdshell 這個需勾上,才能在作業中執行,且批處理文件所在目錄是SQL服務器上的。
exec master..xp_cmdshell 'C:\Batch\backup.bat'