dtexec 公用程式
更新: 2008 年 11 月 17 日
dtexec 命令提示字元公用程式用來設定和執行 SQL Server 2005 Integration Services (SSIS) 封裝。dtexec 公用程式可用來存取所有封裝組態和執行功能,如連接、屬性、變數、記錄和進度指標等。dtexec 公用程式可讓您從下列三個來源載入封裝:Microsoft SQL Server 資料庫、SSIS 服務和檔案系統。
附註: |
---|
在 64 位元電腦上,Integration Services 會同時安裝 32 位元和 64 位元版本的 dtexec 公用程式 (dtexec.exe)。 |
這個公用程式有四個執行階段。執行階段如下所示:
- 命令源碼處理階段:命令提示字元讀取已指定的選項和引數清單。如果發現 /? 或 /HELP 選項,則會略過所有後續的階段。
- 封裝載入階段:載入 /SQL、/FILE 或 /DTS 選項所指定的封裝。
- 設定階段:選項的處理順序如下:
- 設定封裝旗標、變數和屬性的選項。
- 確認封裝的版本和建置的選項。
- 設定公用程式之執行階段行為的選項,例如報告。
- 驗證和執行階段:執行封裝,如果指定了 /VALIDATE 選項,則只會驗證封裝。
從 dtexec 公用程式傳回的結束碼
當執行封裝時,dtexec 可以傳回結束碼。結束碼可用來擴展 ERRORLEVEL 變數,讓您可以在批次檔內的條件陳述式或分支邏輯中測試此變數的值。下列資料表列出封裝作業結束時,dtexec 公用程式所能設定的值。
值 | 描述 |
---|---|
0 |
順利執行封裝。 |
1 |
封裝失敗。 |
3 |
使用者取消封裝。 |
4 |
公用程式找不到所要求的封裝。找不到這個封裝。 |
5 |
公用程式無法載入所要求的封裝。無法載入這個封裝。 |
6 |
公用程式在命令列中發現內部語法錯誤或語意錯誤。 |
公用程式語法規則
所有選項的開頭都必須是斜線 (/) 或減號 (-)。此處顯示的選項的開頭為斜線 (/),但可以用減號 (-) 來替代。
如果引數中包含空格,則引數必須包含在引號內。如果引數沒有用引號括住,則引數不能包含空格。
加上引號的字串內的雙引號代表逸出的單引號。
除了密碼以外,選項和引數都沒有區分大小寫。
使用 xp_cmdshell 的 dtexec
您可以從 xp_cmdshell 提示中執行 dtexec。下列範例顯示如何執行名為 UpsertData.dtsx 的封裝,並忽略傳回碼:
EXEC xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'
下列範例顯示如何執行同一個封裝,並擷取傳回碼:
DECLARE @returncode int
EXEC @returncode = xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'
重要事項: |
---|
在 Microsoft SQL Server 2005 中,xp_cmdshell 選項會在新安裝中預設為停用。您可以使用介面區組態工具或執行 sp_configure 系統預存程序,藉此啟用此選項。如需詳細資訊,請參閱<xp_cmdshell 選項>。 |
語法
dtexec /option [value] [/option [value]]...
參數
若要了解與 SQL Server 2000 dtsrun 公用程式一起使用的命令提示選項如何對應到與 SQL Server 2005 dtexec 公用程式一起使用的命令提示選項,請參閱<dtsrun 到 dtexec 命令選項對應>。如需有關如何升級這些公用程式的建議,請參閱<升級 dtsrun 命令列>。
選項
描述
/? [option_name]
(選擇性)。顯示命令提示字元選項,或顯示指定的 option_name 的說明,然後關閉公用程式。
如果指定 option_name 引數,dtexec 便會啟動《SQL Server 線上叢書》,並顯示<dtexec 公用程式>主題。
**/CheckF[ile]**filespec
(選擇性)。將封裝上的 CheckpointFileName 屬性設為 filespec 所指定的路徑和檔案。當重新啟動封裝時,會使用這個檔案。如果指定這個選項時沒有使用檔案名稱值,就會將封裝的 CheckpointFileName 設為空字串。如果沒有指定這個選項,就會保留封裝中的值。
/CheckP[ointing]{on\off}
(選擇性)。設定一個值來決定在執行封裝期間,封裝是否要使用檢查點。on 這個值指定要重新執行失敗的封裝。當重新執行失敗的封裝時,執行階段引擎會使用檢查點,從失敗點重新啟動封裝。
如果宣告的選項不含任何值,則預設值是 on。如果此值設為 on,但找不到檢查點檔案,則封裝執行失敗。如果沒有指定這個選項,就會保留封裝中所設定的值。如需詳細資訊,請參閱<在封裝中使用檢查點>。
dtexec 的 /CheckPointing on 選項相當於將封裝的 SaveCheckpoints 屬性設定為 True,以及將 CheckpointUsage 屬性設定為 Always。
**/Com[mandFile]**filespec
(選擇性)。指定在公用程式的命令來源期間,會開啟 filespec 指定的檔案,而且會讀取此檔案中的選項,直到在檔案中遇到 EOF 為止。filespec 是一份文字檔案,包含其他 dtexec 命令選項。filespec 引數指定與封裝的執行相關聯的命令檔之檔名和路徑。
**/Conf[igFile]**filespec
(選擇性)。指定要擷取值的來源組態檔。使用這個選項時,您可以設定一個執行階段組態,這個執行階段組態與封裝設計階段所指定的組態不同。您可以將不同的組態設定儲存在 XML 組態檔中,然後在執行封裝之前,利用 /ConfigFile 選項來載入設定。
附註:
如果 /ConfigFile 選項所指定的組態檔位置與封裝所指定的位置不同,dtexec 公用程式可能會引發警告。您可以忽略這則警告。只要 /ConfigFile 選項指定有效的檔案路徑,dtexec 公用程式就會尋找並使用 /ConfigFile 選項所指定的組態檔。
**/Conn[ection]**id_or_name;connection_string [[;id_or_name;connection_string]…]
(選擇性)。指定具有指定名稱或 GUID 的連接管理員位於此封裝中,並且指定連接字串。
這個選項需要同時指定這兩個參數:在 id_or_name 引數中必須提供連接管理員名稱或 GUID,而且在 connection_string 引數中必須指定有效的連接字串。如需詳細資訊,請參閱<連接管理員>。
/Cons[oleLog] [[displayoptions];[list_options;src_name_or_guid]...]
(選擇性)。在執行封裝期間,於主控台中顯示指定的記錄項目。如果省略了這個選項,主控台便不會顯示任何記錄項目。如果指定了這個選項,但未設定用來限制顯示的參數,就會顯示每個記錄項目。若要限制主控台顯示的項目,您可以使用 displayoptions 參數指定要顯示的資料行,以及使用 list_options 參數來限制記錄項目類型。
displayoptions 值如下:
- N (名稱)
- C (電腦)
- O (操作員)
- S (來源名稱)
- G (來源 GUID)
- X (執行 GUID)
- M (訊息)
- T (開始和結束時間)
list_options 值如下:
- I - 指定包含清單。只記錄指定的來源名稱或 GUID。
- E - 指定排除清單。不記錄指定的來源名稱或 GUID。
- 對包含或排除指定的 src_name_or_guid 參數為事件名稱、來源名稱或來源 GUID。
如果您在相同命令提示字元上使用多個 /ConsoleLog 選項,這些選項的互動方式如下:
- 顯示順序不受影響。
- 如果命令列上沒有包含清單,則排除清單會套用至所有類型的記錄項目。
- 如果命令列上出現任何包含清單,則排除清單會套用至所有包含清單的聯集。
如需 /ConsoleLog 選項的若干範例,請參閱「備註」一節。
**/D[ts]**package_path
(選擇性)。從 SSIS 封裝存放區中載入封裝。package_path 引數指定 SSIS 封裝的相對路徑,從 SSIS 封裝存放區的根目錄開始,並包括 SSIS 封裝的名稱。如果 package_path 引數中指定的路徑或檔案名稱包含空格,則必須將 package_path 引數放在括號內。
/DTS 選項不能和 /File 或 /SQL 選項一起使用。如果指定了多個選項,dtexec 便會失敗。
/De[crypt] password
(選擇性)。設定載入含密碼加密的封裝時,所用的解密密碼。
**/F[ile]**filespec
(選擇性)。載入儲存在檔案系統中的封裝。filespec 引數指定封裝的路徑和檔案名稱。您可以指定路徑為通用命名慣例 (UNC) 路徑或本機路徑。如果 filespec 引數中指定的路徑或檔案名稱包含空格,則必須將 filespec 引數放在括號內。
/File 選項不能和 /DTS 或 /SQL 選項一起使用。如果指定了多個選項,dtexec 便會失敗。
/H[elp] [option_name]
(選擇性)。顯示選項的說明,或顯示指定之 option_name 的說明,並關閉公用程式。
如果指定 option_name 引數,dtexec 便會啟動《SQL Server 線上叢書》,並顯示<dtexec 公用程式>主題。
**/L[ogger]**classid_orprogid;configstring
(選擇性)。建立一或多個記錄提供者與 SSIS 封裝執行作業的關聯性。classid_orprogid 參數指定記錄提供者,並可指定為類別 GUID。configstring 是用來設定記錄提供者的字串。
下列清單顯示可用的記錄提供者:
- 文字檔:
- ProgID: DTS.LogProviderTextFile.1
- ClassID: {59B2C6A5-663F-4C20-8863-C83F9B72E2EB}
- SQL Server Profiler:
- ProgID: DTS.LogProviderSQLProfiler.1
- ClassID: {5C0B8D21-E9AA-462E-BA34-30FF5F7A42A1}
- SQL Server:
- ProgID: DTS.LogProviderSQLServer.1
- ClassID: {6AA833A1-E4B2-4431-831B-DE695049DC61}
- Windows 事件記錄:
- ProgID: DTS.LogProviderEventLog.1
- ClassID: {97634F75-1DC7-4F1F-8A4C-DAF0E13AAA22}
- XML 檔案:
- ProgID: DTS.LogProviderXMLFile.1
- ClassID: {AFED6884-619C-484F-9A09-F42D56E1A7EA}
**/M[axConcurrent]**concurrent_executables
(選擇性)。指定封裝可以同時執行的可執行檔數量。這個指定的值必須是非負整數或 -1。-1 值表示 SSIS 允許同時執行的最大可執行檔數量,等於執行封裝之電腦上的處理器總數再加 2。
**/P[assword]**password
(選擇性)。允許擷取 SQL Server 驗證所保護的封裝。這個選項會與 /User 選項搭配使用。如果省略 /Password 選項,而使用 /User 選項,便會使用空白密碼。password 值可加上引號。
安全性注意事項:
可能的話,請使用「Windows 驗證」。
/Remcomment
(選擇性)。在命令提示字元或命令檔中加入註解。引數是選擇性的。comment 的值是一個字串,它必須以引號括住,或不包含空格。如果沒有指定引數,則插入空白行。在命令源碼處理階段,會捨棄 comment 值。
**/Rep[orting]**level [;event_guid_or_name[;event_guid_or_name[...]]
(選擇性)。指定要報告的訊息類型。level 可用的報告選項如下:
N 無報告。
E 報告錯誤。
W 報告警告。
I 報告參考用訊息。
C 報告自訂事件。
D 報告資料流程工作事件。
P 報告進度。
V 詳細資訊報告。
V 和 N 引數與所有其他引數互斥;這兩個引數必須單獨指定。如果沒有指定 /Reporting 選項,預設層級便是 E (錯誤)、W (警告) 和 P (進度)。
所有事件前面都加上 "YY/MM/DD HH:MM:SS" 格式的時間戳記,如果有 GUID 或易記名稱,也會加上它們。
選擇性參數 event_guid_or_name 記錄提供者的例外狀況清單,例外狀況會指出不要記錄但可能已記錄的事件。
您不需要排除通常預設為不要記錄的事件。
/Res[tart] {deny | force | ifPossible}
(選擇性)。為這個封裝中的 CheckpointUsage 屬性指定新值。這些參數的意義如下:
Deny 將 CheckpointUsage 屬性設為 DTSCU_NEVER。
Force 將 CheckpointUsage 屬性設為 DTSCU_ALWAYS。
ifPossible 將 CheckpointUsage 屬性設為 DTSCU_IFEXISTS。
如果沒有指定任何值,則會使用預設值 force。
/SetpropertyPath;value
(選擇性)。覆寫封裝內的變數、屬性、容器、記錄提供者、Foreach 列舉值或連接的組態。使用此選項時,/SET 會將 propertyPath 引數變更為指定的值。可以同時指定多個 /SET 選項。
您可以執行封裝組態精靈來決定 propertyPath 的值。您選取項目的路徑會顯示在最後的 [正在完成精靈] 頁面上,並可複製及貼上。如果您只是為了這個目的而使用精靈,可以在複製路徑之後取消精靈。
以下範例執行封裝及提供變數的新值:
dtexec /f mypackage.dtsx /set \package.variables[myvariable].Value;myvalue
**/Ser[ver]**server
(選擇性)。當指定 /SQL 或 /DTS 選項時,這個選項會指定要擷取封裝的來源伺服器名稱。如果您省略 /Server 選項,而指定了 /SQL 或 /DTS 選項,就會針對本機伺服器來嘗試執行封裝作業。server_instance 值可加上引號。
**/SQ[L]**package_path
載入儲存在 SQL Server 中的封裝。package_path 引數指定要擷取的封裝名稱。如果路徑包含資料夾,則其結尾應為反斜線 ("\")。package_path 值可加上引號。如果 package_path 引數中指定的路徑或檔案名稱包含空格,則必須將 package_path 引數放在括號內。
您可以搭配 /User、/Password 及 /Server 選項和 /SQL 選項一起使用。
如果省略 /User 選項,就會利用 Windows 驗證來存取封裝。如果您使用 /User 選項,則指定的 /User 登入名稱與 SQL Server 驗證相關聯。
/Password 選項只能配合 /User 選項一起使用。如果您使用 /Password 選項,則是利用所提供的使用者名稱和密碼資訊來存取封裝。如果忽略 /Password 選項,將使用空白密碼。
安全性注意事項 可能的話,請使用「Windows 驗證」。
如果省略 /Server 選項,將假設使用 SQL Server 的預設本機執行個體。
/SQL 選項不能和 /DTS 或 /File 選項一起使用。如果指定了多個選項,dtexec 便會失敗。
/Su[m]
(選擇性)。顯示包含下一個元件將接收之列數的累加計數器。
**/U[ser]**user_name
(選擇性)。允許擷取 SQL Server 驗證所保護的封裝。只有在指定 /SQL 選項時,才使用這個選項。user_name 值可加上引號。
安全性注意事項 可能的話,請使用「Windows 驗證」。
/Va[lidate]
(選擇性)。在驗證階段之後,停止執行封裝 (並不會實際執行封裝)。在驗證期間,使用 /WarnAsError 選項會導致 dtexec 將警告視為錯誤,因此,如果在驗證期間發生警告就會造成封裝失敗。
**/VerifyB[uild]**major[;minor[;build]]
(選擇性)。根據驗證階段期間在 major、minor 和 build 引數指定的組建編號,來驗證封裝的組建編號。如果發生不符的情形,將不會執行封裝。
這些值是 Long 整數。此引數可以是下列這三種格式的其中一種,而且 major 的值永遠是必要的:
- major
- major;minor
- major; minor; build
**/VerifyP[ackageID]**packageID
(選擇性)。將封裝 GUID 與 package_id 引數所指定的值進行比較,藉此驗證要執行之封裝的 GUID。
/VerifyS[igned]
(選擇性)。如果指定這個選項,在未簽署封裝的情況下將導致封裝失敗。
**/VerifyV[ersionID]**versionID
(選擇性)。在封裝驗證階段期間,將封裝的版本 GUID 與 version_id 引數所指定的值進行比較,藉此驗證要執行之封裝的版本 GUID。
/W[arnAsError]
(選擇性)。使封裝將警告視為錯誤,因此,當驗證期間發生警告時,封裝便會失敗。如果驗證期間沒有發生警告,也沒有指定 /Validate 選項,就會執行封裝。
備註
命令選項的指定順序可能會影響封裝的執行方式:
- 依照在命令列中發現選項的順序來處理選項。在命令列上發現命令檔案時便會加以讀取,命令檔案中的命令也就會依照發現的順序來處理。
- 如果相同選項、參數或變數在同一個命令列陳述式中重複出現,以選項的最後一個執行個體優先。
- /Set 和 /ConfigFile 選項是依照發現的順序來處理。
範例
執行封裝
若要利用 Windows 驗證來執行儲存在 SQL Server 的 SSIS 封裝,請使用下列程式碼:
dtexec /sq pkgOne /ser productionServer
若要執行儲存到 SSIS 封裝存放區之檔案系統資料夾的 SSIS 封裝,請使用下列程式碼:
dtexec /dts "\File System\MyPackage"
若要在不執行封裝的情況下,驗證使用 Windows 驗證且儲存在 SQL Server 的封裝,請使用下列程式碼:
dtexec /sq pkgOne /ser productionServer /va
若要執行儲存在檔案系統中的 SSIS 封裝,請使用下列程式碼:
dtexec /f "c:\pkgOne.dtsx"
若要執行儲存在檔案系統中的 SSIS 封裝,且要指定記錄選項,請使用下列程式碼:
dtexec /f "c:\pkgOne.dtsx" /l "DTS.LogProviderTextFile;c:\log.txt"
若要執行使用 Windows 驗證、儲存在 SQL Server 的預設本機執行個體,且會在執行之前確認版本的封裝,請使用下列程式碼:
dtexec /sq pkgOne /verifyv {c200e360-38c5-11c5-11ce-ae62-08002b2b79ef}
若要執行儲存在檔案系統中且在外部進行設定的 SSIS 封裝,請使用下列程式碼:
dtexec /f "c:\pkgOne.dtsx" /conf "c:\pkgOneConfig.cfg"
附註: |
---|
如果路徑或檔案名稱中包含空格,就必須將 /SQL、/DTS 或 /FILE 選項的 package_path 或 filespec 引數包含在引號中。如果引數沒有用引號括住,則引數不能包含空格。 |
記錄選項
如果有三個記錄項目類型 A、B 和 C,下列不含參數的 ConsoleLog 選項會顯示這三個記錄類型及其所有欄位:
/CONSOLELOG
下列選項會顯示所有記錄類型,但只會顯示 [名稱] 和 [訊息] 資料行:
/CONSOLELOG NM
下列選項只會顯示記錄項目類型 A 的所有資料行:
/CONSOLELOG I;LogEntryTypeA
下列選項只會顯示記錄項目類型 A 及其 [名稱] 和 [訊息] 資料行:
/CONSOLELOG NM;I;LogEntryTypeA
下列選項會顯示記錄項目類型 A 和 B 的記錄項目:
/CONSOLELOG I;LogEntryTypeA;LogEntryTypeB
您可以利用多個 ConsoleLog 選項來取得相同結果:
/CONSOLELOG I;LogEntryTypeA /CONSOLELOG I;LogEntryTypeB
如果使用 ConsoleLog 選項時不含參數,會顯示所有欄位。若包含 list_options 參數會使下列命令只顯示記錄項目 A 及其所有欄位:
/CONSOLELOG NM;I;LogEntryTypeA /CONSOLELOG
下列項目會顯示記錄項目類型 A 以外的所有記錄項目;也就是說,它只會顯示記錄項目類型 B 和 C:
/CONSOLELOG E;LogEntryTypeA
下列範例利用多個 ConsoleLog 選項和單一排除項來取得相同結果:
/CONSOLELOG E;LogEntryTypeA /CONSOLELOG
/CONSOLELOG E;LogEntryTypeA /CONSOLELOG E;LogEntryTypeA
/CONSOLELOG E;LogEntryTypeA;LogEntryTypeA
下列範例不會顯示任何記錄訊息,因為當記錄檔類型同時在包含和排除的清單中找到時,就會將它排除。
/CONSOLELOG E;LogEntryTypeA /CONSOLELOG I;LogEntryTypeA
SET 選項
以下顯示如何使用 /SET 選項,它可讓您在從命令列啟動封裝時,變更任何封裝屬性或變數的值。
/SET \package\DataFlowTask.Variables[User::MyVariable].Value;newValue
請參閱
概念
其他資源
如何:在 Business Intelligence Development Studio 中執行封裝
64 位元電腦上的 Integration Services 考量
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2008 年 11 月 17 日 |
|
2006 年 7 月 17 日 |
|
2006 年 4 月 14 日 |
|
2005 年 12 月 5 日 |
|