簡體   English   中英

如何使用約束編輯器中的查詢結果集來有條件地執行SQ​​L任務?

[英]How to use the Result Set from a Query in the Constraint Editor to conditionally execute SQL Task?

我的SQL腳本存儲在@gempar = NULL@beneficiary = '2018-01-01' @beneficiary '2018-01-01' 需要根據這些變量的內容執行下一個執行SQL任務。 IF ISNULL(@gempar) = True然后我們不運行以下任務(因為那時@gempar 等於NULL )。 另一方面,IF ISNULL(@beneficiary) = False然后我們運行以下任務(因為@beneficiary 不是NULL )。

在此輸入圖像描述

下一個圖像是執行SQL任務的結果集

在此輸入圖像描述

我在SSIS中創建了2個變量faviciary和gempar但是我不確定它們是否應該在表達式列中編寫如下: @[User::gempar]@[User::beneficiary]或者它們現在在下一個圖片:

在此輸入圖像描述

這是SSIS控制流程:

在此輸入圖像描述

優先約束編輯器的輸出應為True。 為什么它沒有抓住@beneficiary的價值?

在此輸入圖像描述

我希望TRUNCATE GEMPAR TABLES任務停止並且TRUNCATE BENE TABLES任務繼續。

SSIS不允許SSIS變量為空。 它有點舊,並且在稍微不同的上下文中,但本文進一步詳細介紹了關於null的SSIS變量。 由於您使用的變量屬於字符串數據類型,因此選項會將變量與空字符串進行比較。 請記住,這並不能保證這些變量因執行SQL任務中執行的操作而為空。 您可能需要在SELECT語句中替換空字符串或其他值。 例如, COALESCE(@beneficiary , '')

右鍵單擊任務之間的優先約束選擇“編輯”。 然后將評估操作更改為表達式並添加表達式,如下所示。 根據您的預期結果,可能需要將評估操作更改為表達式和約束 ,並在“值”字段中設置先前任務的狀態。 @[User::beneficiary]變量為null時,以下示例返回true,這將允許執行以下任務,如您所述。 您可以對@[User::gempar]變量進行反轉,即使用!=

@[User::beneficiary]) == ""

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM