Sql-Server
如何限制 SSIS 包中目標數據庫實例的版本?
如何將 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%'
. 我喜歡這個,因為它是一個更熟悉的版本命名法。