dtexec 公用程式

更新: 2008 年 11 月 17 日

dtexec 命令提示字元公用程式用來設定和執行 SQL Server 2005 Integration Services (SSIS) 封裝。dtexec 公用程式可用來存取所有封裝組態和執行功能,如連接、屬性、變數、記錄和進度指標等。dtexec 公用程式可讓您從下列三個來源載入封裝:Microsoft SQL Server 資料庫、SSIS 服務和檔案系統。

ms162810.note(zh-tw,SQL.90).gif附註:
在 64 位元電腦上,Integration Services 會同時安裝 32 位元和 64 位元版本的 dtexec 公用程式 (dtexec.exe)。

這個公用程式有四個執行階段。執行階段如下所示:

  1. 命令源碼處理階段:命令提示字元讀取已指定的選項和引數清單。如果發現 /?/HELP 選項,則會略過所有後續的階段。
  2. 封裝載入階段:載入 /SQL/FILE/DTS 選項所指定的封裝。
  3. 設定階段:選項的處理順序如下:
    • 設定封裝旗標、變數和屬性的選項。
    • 確認封裝的版本和建置的選項。
    • 設定公用程式之執行階段行為的選項,例如報告。
  4. 驗證和執行階段:執行封裝,如果指定了 /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"'
ms162810.note(zh-tw,SQL.90).gif重要事項:
在 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 選項來載入設定。

ms162810.note(zh-tw,SQL.90).gif附註:

如果 /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 值可加上引號。

ms162810.security(zh-tw,SQL.90).gif安全性注意事項:

可能的話,請使用「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]]

(選擇性)。根據驗證階段期間在 majorminorbuild 引數指定的組建編號,來驗證封裝的組建編號。如果發生不符的情形,將不會執行封裝。

這些值是 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"
ms162810.note(zh-tw,SQL.90).gif附註:
如果路徑或檔案名稱中包含空格,就必須將 /SQL、/DTS 或 /FILE 選項的 package_pathfilespec 引數包含在引號中。如果引數沒有用引號括住,則引數不能包含空格。

記錄選項

如果有三個記錄項目類型 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

請參閱

概念

dtsrun 到 dtexec 命令選項對應

其他資源

如何:在 Business Intelligence Development Studio 中執行封裝
64 位元電腦上的 Integration Services 考量

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2008 年 11 月 17 日

變更的內容:
  • 新增有關如果 /ConfigFile 選項所指定的組態檔與封裝所指定的檔案不同,dtexec 公用程式所引發之警告的注意事項。

2006 年 7 月 17 日

變更的內容:
  • 提供錯誤碼的詳盡說明。
  • 新增顯示錯誤碼擷取的語法範例。
  • 說明 CheckPointing on 選項和 UI 屬性 CheckpointUsage 的對應關係。

2006 年 4 月 14 日

變更的內容:
  • 說明必須以引號括住包含空格的參數。
  • 新增如何執行儲存到檔案系統之 SSIS 封裝的範例。

2005 年 12 月 5 日

變更的內容:
  • 新增重要通知:依預設會停用 xp_cmdshell