Sql server 批量更改SQL Server数据库中特定列的所有条目
问题:我正在尝试使用Sql server 批量更改SQL Server数据库中特定列的所有条目,sql-server,bulkinsert,bulkupdate,Sql Server,Bulkinsert,Bulkupdate,问题:我正在尝试使用批量插入查询将一个包含数千行/数百万行的.csv文件插入到SQL Server表中。现在我想用批量更新来更新表,其中特定列发生了变化,例如价格发生了变化。我该怎么做?还有:我想在插入到表中时忽略约束 BULK INSERT Table FROM 'D:\test.csv' WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n') GO 现在,例如,当我第二次更新文件时,表中包含价格列,仅更新之前具有不同价格的行。
批量插入
查询将一个包含数千行/数百万行的.csv
文件插入到SQL Server表中。现在我想用批量更新来更新表,其中特定列发生了变化,例如价格发生了变化。我该怎么做?还有:我想在插入到表中时忽略约束
BULK INSERT Table
FROM 'D:\test.csv'
WITH
(FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n')
GO
现在,例如,当我第二次更新文件时,表中包含价格列,仅更新之前具有不同价格的行。分两个(或更多)步骤进行更新
插入原始数据(缺陷和所有缺陷),然后运行单独的update语句,使其看起来像您想要的那样
对于大型或繁忙的表,或者为了在准备就绪之前保持新数据的独立性,您可能还希望首先将数据大容量插入到单独的保留表中,对其中的数据进行处理和清理,然后从保留表迁移到最终的表中
或者,您可以编写一个客户端程序,在大容量插入之前预清理数据,也可以使用Sql Server Integration Services(SSIS)之类的工具来处理导入。SSIS有很多很好的特性来处理这类事情
您将无法对批量插入代码进行简单或快速的调整。它只做它所做的,不做更多。分两步(或更多步)完成
插入原始数据(缺陷和所有缺陷),然后运行单独的update语句,使其看起来像您想要的那样
对于大型或繁忙的表,或者为了在准备就绪之前保持新数据的独立性,您可能还希望首先将数据大容量插入到单独的保留表中,对其中的数据进行处理和清理,然后从保留表迁移到最终的表中
或者,您可以编写一个客户端程序,在大容量插入之前预清理数据,也可以使用Sql Server Integration Services(SSIS)之类的工具来处理导入。SSIS有很多很好的特性来处理这类事情
您将无法对批量插入代码进行简单或快速的调整。它只做它所做的,什么也不做。你不能只在以前的上传上批量上传一个文件,而只记录差异。您可以完全刷新数据(即:覆盖的满载),将完整的CSV上载到暂存表中,并使用SQL代码比较两个表,也可以使用SSIS等工具连接到CSV文件,对照表中的值进行检查,并从表中触发更新。您不能只批量上传一个文件,而只记录差异。您可以完全刷新数据(即:覆盖的满载),将完整CSV上载到一个临时表中,并使用SQL代码比较两个表,也可以使用SSIS等工具连接到CSV文件,对照表中的值进行检查,并从那里触发更新