将一行或多行从Excel追加到现有的SQL Server表中

时间:2016-06-19 16:35:05

标签: sql-server excel

我已将Excel表导入SQL Server 2016 Express并使用导入向导创建了一个表。

现在当我更新我的Excel工作表时,例如添加一行或更多行,我还想更新我的SQL Server表,这意味着,还要向表中添加一行或多行。最简单的方法是什么?在"附加"行方式。我不想再次添加整个Excel表格了。

1 个答案:

答案 0 :(得分:1)

您要求最简单的解决方案。由于您已经习惯使用向导,因此在我看来,最简单的方法是导入"更新"使用向导将Excel工作表/文件导入SQL Server Express。然而,将其导入新表(不删除旧表)。

然后,使用简单的SQL MERGE语句插入新行或更新SQL Server上的现有记录。之后,您可以再次删除/删除导入的表(因为现有表已更新)。

虽然我不知道您的表,但以下SQL代码示例显示了基本客户表上的简单合并,其中tblCustomers将是现有表(要更新/插入新行)和tblCustomersNEW将是新导入(更新/附加完成后将再次删除):

merge dbo.tblCustomers as target
using dbo.tblCustomersNEW as source
on source.ID = target.ID
when matched then
    update set target.Name = source.Name,
               target.Country = source.Country
when not matched by target then
    insert (Name, Country)
    values (
            source.Name,
            source.Country
           );

请注意,MERGE语句requires a semicolon at the endCTE类似,在您开始; With myTable as...之前需要使用分号。

有关MERGE语句的详细信息,您可能需要阅读有关MSDN上文的以下内容:https://msdn.microsoft.com/en-us/library/bb510625.aspx