需在用戶端機器 (無 Enterprise Manager) 觸發伺服器端 DTS 套件執行,並傳遞參數、記錄執行日誌、捕捉錯誤碼。
dtsrun.exe)使用 DTS 設計師或精靈建立套件 (範例:DTS_ExcelToSqlserver,將 Excel 匯入 SQL Server)。完成後存儲於伺服器 (或版本控制庫)。
CRUNDTS.BAT@echo off
REM 參數檢查: %1=伺服器 %2=登入 %3=密碼 %4=套件名稱
if [%1]==[] goto Usage
if [%2]==[] goto Usage
if [%3]==[] goto Usage
if [%4]==[] goto Usage
cls
SET LOGFILE=C:\DTSRUN.LOG
echo %TIME% Manual DTS package start run......... >> %LOGFILE%
echo ------------------------------------------ >> %LOGFILE%
@dtsrun /S %1 /U %2 /P %3 /N %4 >> %LOGFILE%
if errorlevel 1 goto Error
echo %TIME% Manual DTS package end......... >> %LOGFILE%
echo ------------------------------------------ >> %LOGFILE%
pause
goto Finish
:Error
echo ------------------------------------------- >> %LOGFILE%
echo DTSRUN ERROR PLS CHECK LOG .........
echo %TIME% GlobalStore Backup abnormal end. >> %LOGFILE%
pause
goto Finish
:Usage
echo.
echo Usage: CRUNDTS ServerName UserName PassWord DTS_PackageName
:Finish
CRUNDTS SRV01 sa P@ssw0rd DTS_ExcelToSqlserver
10:24:29.38 Manual DTS package start run.........
------------------------------------------
DTSRun: Loading...
Error: -2147217900 (80040E14); Provider Error: 14262 (37B6)
Error string:
Error source:
Help file:
Help context: 0
10:24:29.66 Manual DTS package end.........
------------------------------------------
--- 修正參數後再次執行 ---
10:27:29.41 Manual DTS package start run.........
------------------------------------------
DTSRun: Loading...
DTSRun: Executing...
DTSRun OnStart: DTSStep_DTSDataPumpTask_1
DTSRun OnProgress: DTSStep_DTSDataPumpTask_1; 23 Rows have been transformed or copied.; PercentComplete = 0; ProgressCount = 23
DTSRun OnFinish: DTSStep_DTSDataPumpTask_1
DTSRun: Package execution complete.
10:27:30.02 Manual DTS package end.........
------------------------------------------
/A 參數傳值 (需 DTS 2000 格式)。sp_start_job 呼叫 Agent 作業執行 DTS,避免用戶端長時間等待。/E 參數) 或加密設定檔。利用 dtsrun.exe 搭配批次檔,即可輕鬆實現用戶端觸發伺服器端 DTS 套件、傳參數、記日誌、捕錯誤的完整自動化流程,適合輕量級 ETL 排程與手動觸發需求。