好吧,我的第一個問題就在這裏。SSIS的SQL數據庫設計
當前用戶正在使用一個巨大的Access應用程序。他們需要一個具有基於Access數據和一些修改的功能的Web應用程序。
好的沒問題。我使用Access to SQL遷移助手轉換數據,然後編寫一些從Web端執行的SSIS包,以便根據需要更新應用程序。這裏一切都很好。
這裏是我有點難倒的地方。有兩種類型的進口,季度和年度。季度是好的,但每年的進口量都會造成問題。每年進口可以用於已採納的預算或建議的預算(每個都在一個單獨的Access數據庫中)。我爲每種類型的年度導入都有一個SSIS包。其中信息那張表如下..
CREATE TABLE Budget
(
BudgetID uniqueidentifier NOT NULL,
ProjectNumber int NOT NULL,
SubProjectNumber varchar(6) NOT NULL,
FiscalYearBegin int NOT NULL,
FiscalYearEnd int NOT NULL,
Sequence int NULL,
QuarterImportDate datetime NULL,
ProposedBudget money NULL,
AdoptedBudget money NULL,
CONSTRAINT PK_Budget PRIMARY KEY CLUSTERED
(
BudgetID ASC
),
CONSTRAINT uc_Budget UNIQUE NONCLUSTERED
(
ProjectNumber ASC,
SubProjectNumber ASC,
FiscalYearBegin ASC,
FiscalYearEnd ASC,
Sequence ASC
)
)
此外,還有可能是預算特定年份的多個版本中的Project
,SubProject
,FiscalYearBegin
和FiscalYearEnd
條款。這就是爲什麼有一個序列號。
所以,問題變得,因爲我有2個不同的SSIS包,每個是1個特定列(無論是ProposedBudget
或AdoptedBudget
)的更新語句,我跟蹤了正確的序列中沒有有效的方法。
請讓我知道,如果我可以做得更清楚,任何建議都會很棒!
謝謝。
BudgetId和Sequence之間的區別是什麼? – AaronLS
BudgetID只是該行的唯一標識符(NEWID)。該序列是爲了那一年的版本。例如,您正在爲FiscalYear 2010/2011進行首次導入。每個項目和子項目都將具有FiscalYearBegin = 2010,FiscalYearEnd = = 2011和Sequence = 0.下一個導入將具有Sequence = 1 – SeanRouz
因此,如果您將ProposedBudget作爲序列1導入,則AdoptedBudget是對同一行的單獨更新, 1?你確實知道每個預算和預算都是一對一的嗎?是否有可能有更多的預算預算或預算預算使得你只有一個序列? – AaronLS