Sql server 如何使用SSI在SQL Server中以编程方式创建MS Access表?
我收到ACCESS数据库中提供给我的SQL数据库的每月数据更新,大约有30个表遵循此模式,最大的表包含大约40000行Sql server 如何使用SSI在SQL Server中以编程方式创建MS Access表?,sql-server,ms-access,ssis,Sql Server,Ms Access,Ssis,我收到ACCESS数据库中提供给我的SQL数据库的每月数据更新,大约有30个表遵循此模式,最大的表包含大约40000行 CREATE TABLE [dbo].[TABLE_NAME_HERE] ( [title] nvarchar (255) NULL, [classification1] nvarchar (255) NULL, [classification2] nvarchar (255) NULL, [1986] float NULL, [1987] float NULL, [
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包可以上传这些表,但是每隔一段时间(每年)他们会添加另一列,DTSX包会硬编码列的详细信息
我们没有时间或预算来重新编程所解决的应用程序-尽管我同意有许多更好的方法来存储这些数据
我想让DTSX包自动将表放到SQL server上,创建一个与ACCESS数据库匹配的表,然后上传数据
这可能吗?是否可以选择更改表结构?例如,如果您有一个子表,其中一列名为Year,另一列名为Value,则无需每年不断添加新列。将数据存储在表行中而不是列名中是一种很好的做法
例如,也可以在MS Acceess VBA中使用ADOX循环访问表的字段集合,并由此在SQL Server中创建一个新表。代码类似于,但需要更改才能使用SQL Server连接等。DTS中的一个选项是在导入时创建一个新表。但是正如前一篇文章所建议的那样,你应该检查问题原因,因为通常没有必要(强烈建议不要)更改表格。当有一个新列时,除非新列完全无用,否则无论如何都必须更改程序的代码。在这种情况下,只需在导入之前删除该列,您就可以恢复正常。如果列很有用,那么在不编写引用它的代码的情况下(在创建/导入表之后),如何使用它??您能否提供更多关于此选项的细节,以便在导入时创建新表?我找不到该选项。使用列-有大量具有模拟结构的表,可通过动态生成的SQL语句访问(用户从菜单中选择感兴趣的年份)-顺便说一句-我没有写这篇文章,我只是在支持一个现有的应用程序,如果我写的话,我肯定不会以这种方式构建它。没有任何选项(时间/预算)来更改表结构,这是一个支持现有应用程序的情况,可以工作-我只是试图在上传时节省几个小时。