我可以做類似下面的事情,讓我知道 IF @ parameter = 1 BEGIN ... query ... END IF @ parameter = 2 需要正確的語法(如果可能的話)。 它是OLE DB連接。 不是存儲過程。只是一個SQL查詢SSIS根據參數執行SQL任務
2
A
回答
2
DECLARE @param AS INT = ?;
IF @param = 1
BEGIN
SELECT 1 AS Y;
END
ELSE IF @param = 2
BEGIN
SELECT 2 AS Y;
END
有在查詢兩個問號,也許你只傳遞一個變量。我看過開發者傳遞兩次(或多次)相同值的代碼。這是低效的。更好的方法是接收SSIS變量中傳遞的參數。優點: 1.您只需要傳遞一個值一次。 2.更重要的是,如果您更改了在sql中使用傳遞的參數的順序,則不需要在執行SQL任務編輯器//參數的用戶界面上更改它們的順序。這就是安迪倫納德後來在他的迴應中提出的建議。
0
你可以。假設您引用的是執行SQL任務,則使用OLE DB連接的執行SQL任務中的參數將使用問號(?)作爲參數佔位符。您可以在執行SQL任務的「參數映射」頁面上將佔位符映射到SSIS變量。在將SQLStatement屬性,您需要輸入:(?= 1)(?= 2)
如果 開始 ... {這裏的一些T-SQL} ... 結束 如果 開始 ... {一些T-SQL在這裏} ... 結束
這是一種完成我認爲你所要求的方式。
另一種方法是創建一個執行SQL任務,將@parameter的值從數據庫讀取到SSIS變量中。然後,您可以構建兩個執行SQL任務 - 一個與T-SQL的每個選項一起作爲SQLStatement屬性 - 並在先行約束上使用表達式來確定執行哪個執行SQL任務。
希望這有助於 :{>
0
您不能使用執行SQL任務來運行Transact-SQL語句。
用於根據您要實現的內容設置條件SQL語句。
在執行SQL任務編輯器
- 在常規選項卡,離開的SQLStatement空白。
- 在參數映射選項卡,添加參數和地圖用戶::參數變量參數名稱0
在表達式標籤中,設置SQLStatementSource到
(DT_NUMERIC,18,0)@ [用戶::參數] == 1? ...查詢1 ...:...查詢2 ...
相關問題
- 1. SSIS執行sql任務參數映射
- 2. SSIS執行sql任務
- 3. SSIS - 將數字參數傳遞給執行SQL任務
- 4. 在SSIS執行sql任務中傳遞參數
- 5. SSIS執行SQL任務錯誤
- 6. SSIS中的條件執行SQL任務
- 7. SSIS執行SQL任務輸出變量
- 8. 在ssis中執行Sql任務錯誤
- 9. 錯誤ssis執行sql任務
- 10. SSIS - '執行SQL'任務和記錄集
- 11. 使用SSIS任務執行SQL任務與sp_send_mail
- 12. 根據If else條件選擇性地在SSIS中執行數據流任務
- 13. 從SSIS執行as400命令的問題執行sql任務
- 14. 什麼是ssis執行sql任務ssis 2012上的FX符號?
- 15. SSIS數據流任務SQL 2008
- 16. 參數傳遞到SSIS執行過程任務
- 17. SSIS執行SQL任務輸出參數-1沒有顯示正確
- 18. SSIS傳遞一個變量來執行sql任務(創建表參數)
- 19. 從SSIS執行SQL返回整數值任務
- 20. SSIS執行SQL任務的SQL命令問題
- 21. 在SQL任務[SSIS]
- 22. 通過SSIS包中的執行SQL任務向SQL AGENT報告行數
- 23. SSIS在SQL 2014中運行的執行進程任務失敗
- 24. SSIS中的陷阱錯誤行執行SQL任務
- 25. 從執行sql任務中讀取excel行SSIS
- 26. SSIS錯誤而執行數據流任務 - excel導入到
- 27. SSIS數據流任務掛起執行Pre-excecute階段
- 28. SSIS - 將T-Sql任務的值傳遞給數據流任務
- 29. SSIS數據Covertion任務
- 30. 根據執行SQL輸出發送郵件任務
If(?= 1)begin ... {some T-SQL here} ... end If(?= 2)開始... {一些T-SQL在這裏} ...結束 上面的SQL作品??我收到「無法解析」錯誤。拍攝我正確的語法 – user1810575