如何将批处理(.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,作业失败!
------解决方案--------------------
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'