我已将Excel表导入SQL Server 2016 Express并使用导入向导创建了一个表。
现在当我更新我的Excel工作表时,例如添加一行或更多行,我还想更新我的SQL Server表,这意味着,还要向表中添加一行或多行。最简单的方法是什么?在"附加"行方式。我不想再次添加整个Excel表格了。
答案 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 end与CTE
类似,在您开始; With myTable as...
之前需要使用分号。
有关MERGE
语句的详细信息,您可能需要阅读有关MSDN上文的以下内容:https://msdn.microsoft.com/en-us/library/bb510625.aspx