2014-06-16 82 views
0

我正在做一个使用SQL Server 2012以及visual studio的数据库编程项目。我创建了一些表格,并且我有一个包含大量数据的excel文件。此阶段的规范是将两个具有11列(每个文件具有不同数据的列)的两个Excel数据表合并到一个单独的表中,稍后在项目中进行分页等操作。SQL 2012数据导入和合并数据

我的最初的愿景是创建两个表格,一个表格具有一个excel数据表格,另一个表格除了名称第二个数据集合之外完全相同,然后使用联合联接将两个表格合并为一个表格。然而,直接导入表是不可能的(可能是由于数据的第1列中存在组合键),所以我创建了两个新表,它们现在包含来自Excel表格的数据,但是这不符合指定将文件合并到表中(因为数据仍然在两个表中,而不是一个,并且它必须位于先前由DDL创建的某个表中)。它也不能解决问题,因为似乎没有办法将这些表查询到现有表(或有吗?)

无论如何,感谢阅读,希望我已经包含足够的信息,如果看起来我错过了一些东西,随时提问。我认为对此的理想解决方案将涉及诸如工会之类的一些描述的联合,但似乎没有办法将该联接关联回现有的表。

+0

那么,你有两个从excel导入的新表,并且你想将这些数据导入到一个sql表中? – SamoanProgrammer

+0

我已经将excel文件导入到sql中,并且生成的数据与已经创建的其他表格一起被保存为2个表格(尽管它可能更容易直接再次读取excel文件,不确定)。 因此,手头的问题基本上是如何将数据从2个表/ excel导入到1个sql表中,因为保留主键和数据类型非常重要。 – user3744344

+0

什么是您将要导入到的模式sql表格? – SamoanProgrammer

回答

0

基本上,你会想要做类似这样的:

SET IDENTITY_INSERT MainTable ON 
INSERT INTO MainTable (col1, col2, col3 ... col11) 
SELECT col1, col2, col3 ... col11 
FROM Table1 
UNION 
SELECT col1, col2, col3 ... col11 
FROM Table2 
SET IDENTITY_INSERT MainTable OFF 

您还没有具体提到你有一个标识字段为您的主键,但我假设你,因此包括SET IDENTITY_INSERT命令。

+0

非常感谢我的太平洋朋友(来自新西兰的im)!这跟我之后的情况差不多(尽管主要是因为数据标准化,看起来还有加入表的问题) – user3744344

+0

不用担心队友,很高兴我能帮助你。是啊,我几乎是一个萨摩亚奇异鸟,在我的大部分时间都住在新西兰,但现在在奥兹:D – SamoanProgrammer

+0

和繁荣我终于通过数据标准化问题,现在到'有趣'的东西:)再次感谢。在灰尘盆里搭配你做的事?不妨再次回到承诺的土地上,那些拥有各种SQL技能的人们最近可以在惠灵顿杀人,尽管可能在任何地方都可以杀人:P – user3744344