2009-06-12 5 views
0

Ich erhalte monatliche Datenaktualisierungen für eine SQL-Datenbank, die mir in einer ACCESS-Datenbank geliefert wird. Es gibt ungefähr 30 Tabellen, die diesem Muster folgen. Die größte Tabelle enthält ungefähr 40.000 Zeilen.Wie programmgesteuert MS Access-Tabelle in SQL Server mit SSIS erstellen?

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) 

Wir haben derzeit ein DTSX Paket, das jedoch diese Tabelle jeder so oft (jährlich) sie fügen Sie eine weitere Spalte uploades und die DTSX-Pakets die Spalte Details schwieriger, die Herrschaft codiert.

Wir haben nicht die Zeit oder das Budget, um die Anwendungen umzuprogrammieren - obwohl ich zustimme, gibt es viele bessere Möglichkeiten, diese Daten zu speichern.

Ich möchte das DTSX-Paket automatisch DROP die Tabelle auf dem SQL-Server, CREATE eine TABELLE, die die ACCESS-Datenbank entspricht und laden Sie die Daten.

Ist das möglich?

Antwort

0

Ist es eine Option, die Tabellenstruktur zu ändern? Wenn Sie beispielsweise eine untergeordnete Tabelle mit einer Spalte mit dem Namen Year und eine andere mit Value verwenden, müssen Sie nicht jedes Jahr neue Spalten hinzufügen. Es empfiehlt sich, Daten in Tabellenzeilen und nicht in den Spaltennamen zu speichern.

Es ist auch möglich, beispielsweise ADOX in MS-Acess VBA zu verwenden, um die Fields-Auflistung der Access-Tabelle durchzulaufen und daraus eine neue Tabelle in SQL Server zu erstellen. Code wäre etwas wie in this link, müsste aber geändert werden, um mit einer SQL Server-Verbindung usw. zu arbeiten.

+0

Es gibt keine Option (Zeit/Budget), um die Tabellenstruktur zu ändern, dies ist ein Fall der Unterstützung einer bestehenden Anwendung, die funktioniert - ich versuche nur ein paar Stunden zu sparen, wenn ich den Upload mache. – StocksR

0

Eine der Optionen in DTS ist die Erstellung einer neuen Tabelle beim Import. Aber wie im vorherigen Post vorgeschlagen, sollten Sie die Problemursache überprüfen, da normalerweise keine Notwendigkeit besteht (und davon wird dringend abgeraten), eine Tabelle zu ändern. Wenn es eine neue Spalte gibt, müssen Sie den Code Ihres Programms trotzdem ändern, es sei denn, die neue Spalte ist völlig nutzlos. In diesem Fall müssen Sie die Spalte vor dem Importieren einfach fallen lassen und es geht Ihnen wieder gut. Wenn die Spalte nützlich ist, wie verwenden Sie sie, ohne Code zu schreiben, der darauf verweist (nach dem Erstellen/Importieren der Tabelle) ???

+0

Konnten Sie mit dieser Option mehr Details zur Verfügung stellen, um eine neue Tabelle beim Import zu erstellen - ich kann diese Option nicht finden. – StocksR

+0

Die Spalte wird verwendet - es gibt viele Tabellen mit ähnlichen Strukturen, auf die über eine dynamisch generierte SQL-Anweisung zugegriffen wird (der Benutzer wählt die Jahre aus, für die er sich interessiert) - BTW - Ich habe das nicht einfach geschrieben eine vorhandene Anwendung zu unterstützen, und ich würde es zuteil nicht so gebaut haben, wenn ich es geschrieben habe. – StocksR