表比方說,我有如下表:插入不同的值與標識
camp_1, camp_2
0, 048
00, 048
000, 042
000, 043
我現在希望將這些值插入到一個新表dim_promotion,這應該是這樣的:
PromotionID, CampaignID, CouponID
1, 1, 1
2, 2, 1,
3, 3, 2,
4, 3, 3
我知道我可以做這種填充表(該站在後面的CampaignID和CouponID dim_campaigns和dim_coupons):
INSERT INTO [REPORTING].dbo.dim_campaigns
SELECT DISTINCT
camp_2 AS CampaignID
FROM [reporting2].[dbo].[reporting_rawdata_v2]
相應的三個表(dim_coupons,dim_campaigns和dim_promotion)的主鍵都設置爲「Identity Specification = YES」
那麼如何填充dim_promotion?什麼是自然秩序?首先派生dim_campaigns和dim_coupons,然後將其轉化爲dim_promotion或者其他方式?
編輯:我有以下數據庫模型(只有一個摘錄)我只指的是黃色的領域。
現在,我們只有大表(rawdatatbl)存儲所有數據(CampaignCode,CouponCode,Campaign Name,CouponName)。這不是非常有效,這就是爲什麼我要強制重構模型(請參見屏幕截圖)。所以,由於目前數據並不包含任何ID,我確實需要ID來填充新表dim_campaigns和dim_coupons。這意味着:要填充dim_campaigns,我會在當前rawdatatbl上運行SELECT DISTINCT campaign_code,然後將其插入dim_campaigns(CampaignID會自動使用auto_increment填充,CampaignName使用「Dummy」填充)。我可以爲dim_coupons做同樣的事情。但是,我如何使用這些數據來初始化Dim_promotion表?或者什麼是將我當前數據從rawdatatbl轉換爲ID的最佳流程?
我不明白你要插入的數據的邏輯......請解釋一些細節(約底層表和業務規則) – Shnugo
你的問題是模糊的。請通過提供表格結構來說明一下。無論如何,如果你的問題是一些列的*身份*規範,你可以通過'SET IDENTITY_INSERT table_name ON'臨時禁用此功能;' – Ormoz
我編輯了我的第一個問題。這對我來說很難解釋 – stefan