在以前的DTS中,在包的開發、測試、發布遷移過程中有很多問題,典型的問題是你必須手動的確定包中的所有連接都指向一個實際存在的物理服務器
幸運的是,現在在SSIS中提供了這種問題的解決方案,那就是包配置
包配置是一個動態改變你的SSIS對象和連接屬性的一種機制,它把這些動態可以改變的信息保存在包的外部,有下面幾種方法存儲這些值並將其傳送到包中:
XML文件
環境變量
注冊表鍵值
父包變量
下面我們將舉例使用XML文件存儲這些值
這個例子我們將會把一個文本文件導入到數據庫的表中,並可以動態配置數據庫的位置來源
首先開始我們的包的建立:
假設存在一文本文件 PersonAge.txt,內容如下:
1,Joe Bloggs,27
2,Mary Smith,26
3,Fred Jones,28
目標表為dbo.PersonAge,使用下面代碼建立
CREATE TABLE [dbo].[PersonAge](
[PersonAgeKey] [int] NULL,
[Person] [varchar](35) NULL,
[PersonAge] [int] NULL
) ON [PRIMARY]
GO
下面開始拖曳組件到控制流面板
。一個Execute SQL task組件,命名為Truncate destination. 其 SQL 命令為 TRUNCATE TABLE dbo.PersonAge.
。一個數據流組件,命名為Import File.
。然後把2者關聯起來
下面開始設計【Import File】數據流任務
。一個 Flat File connection 組件指向PersonAge.txt文件
。一個 OLE DB Connection 組件指向存在dbo.PersonAge表的數據庫 ,然後配置列的屬性,使表跟文件對應起來
到現在為止,已經成功的建立了包
設置包配置
現在開始設置包配置,這是非常簡單的且具有很好的彈性
包配置使你能編輯你的包的屬性、變量、連接和你的控制流的其他屬性,需要注意的是,你不能編輯你的數據流組件的屬性
在菜單條上,單擊DTS, Package Configurations… 或者在控制流設計面板右鍵選擇Package Configurations….
然後在包配置中允許包配置選擇,並單擊添加
在單擊過後出現一個歡迎屏幕並讓你選擇配置類型,當前選擇XML Configuration File
然後鍵入配置文件名,如C:\PackageConfigurations\Environment.dtsConfig,單擊下一步
然後在對象樹浏覽中選擇Connections.Destination.PropertIEs的InitialCatalog 和 ServerName屬性,然後單擊下一步
給你的配置一個名字,這樣整個過程就完成了
這樣你的包將在運行期間獲得2個屬性的值,你打開XML配置文件,你將看得這些你需要動態改變屬性的當前值