Sql-Server

如何限制 SSIS 包中目標數據庫實例的版本?

  • December 31, 2015

如何將 SSIS 包限制為僅在 SQL Server 2012 上執行?

有沒有內置的方法來做到這一點(元數據?),還是我需要做一個查詢?

(可能屬於一個新問題)

我可以使用 獲取版本SERVERPROPERTY('ProductVersion'),但我如何驗證它是like '11.%'

在控制流中創建一個首字母Execute SQL Task並在其中使用以下程式碼:

IF ((SELECT CAST(SERVERPROPERTY('ProductVersion') as CHAR(2))) = 11)
   BEGIN
       SELECT 'TRUE' As Result
   END
   ELSE
       SELECT 'FALSE' As Result

你當然可以用這個做幾件事,對 SSIS 開發人員來說最簡單和最清楚的事情之一就是將結果儲存在 SSIS 變數中,並在 SQL 任務之後將 Precedent Constraint 分配給Expression and Constraint.

如果Execute SQL Task成功並返回 TRUE,它將允許執行其餘部分,這可能是單個包、較大執行流的一部分或主包。如果它失敗或返回 FALSE,您的包裹將停止… 可能值得在另一個路徑中放置警報消息或日誌。

您也可以使用(SELECT @@VERSION) LIKE 'Microsoft SQL Server 2014%'. 我喜歡這個,因為它是一個更熟悉的版本命名法。

引用自:https://dba.stackexchange.com/questions/124727