2009-06-12 51 views
0

我收到一個在ACCESS數據庫中發送給我的SQL數據庫的每月數據更新,大約有30個表格遵循這種模式,最大的表格包含大約40,000行。如何以編程方式使用SSIS在SQL Server中創建MS Access表?

CREATE TABLE [dbo].[TABLE_NAME_HERE] (
[title] nvarchar (255) NULL, 
[classification1] nvarchar (255) NULL, 
[classification2] nvarchar (255) NULL, 
[1986] float NULL, 
[1987] float NULL, 
[1988] float NULL, 
[1989] float NULL, 
[1990] float NULL, 
[1991] float NULL, 
[1992] float NULL, 
[1993] float NULL, 
[1994] float NULL, 
[1995] float NULL, 
[1996] float NULL, 
[1997] float NULL, 
[1998] float NULL, 
[1999] float NULL, 
[2000] float NULL, 
[2001] float NULL, 
[2002] float NULL, 
[2003] float NULL, 
[2004] float NULL, 
[2005] float NULL, 
[2006] float NULL, 
[2007] float NULL, 
[2008] float NULL, 
[2009] float NULL, 
[2010] float NULL, 
[2011] float NULL, 
[2012] float NULL, 
[2013] float NULL, 
[2014] float NULL, 
[2015] float NULL, 
[2016] float NULL, 
[2017] float NULL, 
[2018] float NULL, 
[2019] float NULL, 
[2020] float NULL, 
[2021] float NULL, 
[2022] float NULL, 
[2023] float NULL, 
[2024] float NULL, 
[2025] float NULL) 

目前我們有DTSX包,但每隔一段時間uploades這些表(每年),他們將另一列添加和DTSX包有harded編碼列的詳細信息。

我們沒有時間或預算對應用程序進行重新編程 - 雖然我同意有很多更好的方法來存儲這些數據。

我想讓DTSX包自動刪除SQL服務器上的表,創建一個與ACCESS數據庫和上傳數據相匹配的表。

這可能嗎?

回答

0

是否可以更改表結構?例如,如果您有一個名爲Year的列和另一個名爲Value的子表,則不需要每年都不斷添加新列。將數據存儲在錶行中而不是列名中是一種好的做法。

例如,也可以在MS-Acceess VBA中使用ADOX來循環訪問表的字段集合,並從此在SQL Server中創建一個新表。代碼將類似於in this link,但需要更改以使用SQL Server連接等。

+0

沒有選擇(時間/預算)來更改表格結構,這是支持現有應用程序的一種情況 - 我只是想在上傳時節省幾個小時。 – StocksR 2009-06-16 11:22:17

0

DTS中的一個選項是在導入時創建新表。但正如前一篇文章所建議的,您應該通常檢查問題原因,因此無需更改表格(嚴重建議不要)。如果有新欄目,則無論如何都必須更改程序代碼,除非新欄目完全無用。在這種情況下,只需在導入之前刪除列,並且您再次正常。如果該列很有用,那麼如何在不編寫引用它的代碼的情況下使用它(創建/導入表之後)?

+0

你可以提供更多的deatils這個選項來創建一個新的表在導入 - 我找不到這個選項。 – StocksR 2009-06-16 11:20:02

相關問題