2014-09-22 70 views
0

當使用SSIS函數Slow Changing Dimension時,如何向目標表中添加一列,以告訴我何時我的記錄是最新的?SSIS緩慢變化的尺寸

我正在使用SSIS中的緩慢更改維度函數將數據從我的客戶表移動到我的DimCustomer表中。但是,我想添加一個列到我的DimCustomer名稱「IsCurrent」,它會告訴我什麼時候我的值是最新的。但我不知道該怎麼做。

基本上我在心裏是怎麼寫聲明:WHEN EndDate IS NULL THEN 'Y' ELSE 'N'

需要你的幫助搞清楚如何跟蹤我的電流和不是當前值。

下面是我的客戶表:

CREATE TABLE Customers (
CustomerNumber Char(8) PRIMARY KEY, 
FirstName nvarchar(50) Not NULL, 
MiddleName nvarchar(1) Null, 
LastName nvarchar(50) Not Null, 
EmailAddress nvarchar(320) Not Null, 
Phone varchar(25) Not Null, 
Country nvarchar(20) Not Null, 
City nvarchar(20) Not Null, 
StateProvince nvarchar(10) Not Null, 
Addressline1 nvarchar (250) Not Null, 
Addressline2 nvarchar (250) Null 
) 

下面是我的DimCustomer表:

CREATE TABLE dbo.DimCustomers (
CustomerKey Int Identity(1,1) PRIMARY KEY CLUSTERED, 
CustomerNumber Char(8) Not Null, 
FirstName nvarchar(50) Not NULL, 
MiddleName nvarchar(1) Null, 
LastName nvarchar(50) Not Null, 
EmailAddress nvarchar(320) Not Null, 
Phone varchar(25) Not Null, 
Country nvarchar(20) Not Null, 
City nvarchar(20) Not Null, 
StateProvince nvarchar(10) Not Null, 
Addressline1 nvarchar (250) Not Null, 
Addressline2 nvarchar (250) Null, 
StartDate Datetime Null, 
EndDate Datetime Null, 
IsInerred Bit Default(0)) 

回答

0

不要存放它,除非你要。

相反,使用computed column

ALTER TABLE 
    dbo.DimCustomers 
ADD 
    IsCurrent AS (CASE WHEN EndDate IS NULL THEN 'Y' ELSE 'N' END); 

如果你絕對必須從SSIS角度來看,你需要有一個執行SQL任務數據流完成後保存的值,然後。在那裏,您需要制定適當的查詢來重新計算IsCurrent值。