表達式是符號標識碼、常值、函式和運算符的組合,可產生單一數據值。 簡單表達式可以是單一常數、變數或函式。 更頻繁地,表達式很複雜,使用多個運算符和函式,並參考多個數據行和變數。 在 Integration Services 中,表達式可用來定義 CASE 語句的條件、在數據行中建立和更新值、在運行時間將值指派給變數、更新或填入屬性、定義優先順序條件約束中的條件約束,以及提供 For 迴圈容器所使用的表達式。
表達式是以表達式語言和表達式評估工具為基礎。 表達式評估工具會剖析表達式,並判斷表達式是否遵循表達式語言的規則。 如需表達式語法和支援常值和標識符的詳細資訊,請參閱下列主題。
使用表達式的元件
Integration Services 中的下列元素可以使用表示式:
條件式分割轉換會根據表達式實作決策結構,以將數據列導向不同的目的地。 條件式分割轉換中使用的運算式必須評估為
true或false。 例如,符合表達式 「Column1 > Column2」 條件的數據列可以路由傳送至個別的輸出。「衍生的數據行」轉換會使用使用表達式所建立的值,在數據流中填入新的數據行,或更新現有的數據行。 例如,表達式 Column1 + “ABC” 可用來更新值,或使用串連字串建立新的值。
變數會使用表示式來設定其值。 例如,GETDATE() 會將變數的值設定為目前的日期。
優先順序限制可以使用表示式來指定條件,以確定封裝中限制的工作或容器是否會執行。 優先權條件約束中使用的運算式必須評估為
true或false。 例如,表達式@A > @B比較兩個使用者定義的變數,以判斷受限制的工作是否執行。For 迴圈容器可以使用表示式來建置初始化、評估,以及循環結構所使用的遞增語句。 例如,表達式@Counter = 1 會初始化循環計數器。
表達式也可以用來更新封裝屬性以及容器的值,例如 For 迴圈和 Foreach 迴圈,工作、封裝及專案層級連接管理員、紀錄提供者和 Foreach 列舉器。 例如,使用屬性表達式,可以將字串 「Localhost.AdventureWorks」 指派給 Execute SQL 工作的 ConnectionName 屬性。 如需詳細資訊,請參閱 在封裝中使用屬性運算式。
表達式的圖示標記
在 SQL Server Data Tools (SSDT)中,特殊圖示標記會顯示在連接管理員、變數和具有運算式設定的工作旁邊。 HasExpressions 屬性適用於所有支援 expresions 的 SSIS 物件,但變數除外。 屬性可讓您輕鬆地識別哪些物件具有表達式。
運算式產生器
表達式產生器是用來建置表達式的圖形化工具。 它可在 [條件式分割轉換編輯器]、 [衍生的數據行轉換編輯器 ] 對話框,以及 [ 表達式產生器 ] 對話框中,是用於建置表達式的圖形化工具。
表達式產生器提供包含套件特定項目的資料夾,以及包含表達式語言所提供的函式、型別轉換和運算子的資料夾。 套件特定的元素包括系統變數和用戶定義變數。 在 [ 條件式分割轉換編輯器 ] 和 [ 衍生的數據行轉換編輯器 ] 對話框中,您也可以檢視數據行。 若要建立轉換的表示式,您可以將項目從資料夾拖曳至條件或表達式欄,或者也可以直接在欄中輸入表達式。 表達式產生器會自動新增所需的語法元素,例如變數名稱上的 @ 前置詞。
備註
使用者定義和系統變數的名稱會區分大小寫。
變數具有範圍,而表達式產生器中的 Variables 資料夾只會列出範圍內且可供使用的變數。 如需詳細資訊,請參閱 Integration Services (SSIS) 變數。
相關工作
相關內容
social.technet.microsoft.com 上的技術文章 SSIS 運算式範例