sql - SQL Server 覆盖唯一约束冲突
问题描述
我有两个文件通过 Node JS 导入到 SQL Server。该表具有权益工具标识符 (ISIN) 的唯一键
data1.csv
和data2.csv
我首先 import data1.csv 将每一行插入到数据库中。在此之后,我导入可能包含相同 ISIN 的 data2.csv(值再次插入数据库),但它的相关值比第一个文件具有更高的优先级(这些 ISIN 中的数量不多,大约 1000 个中有 5 个)。
如果违反了唯一约束,我可以用 SQL Server 做什么来覆盖这些值?我知道可以选择先上传 data2.csv,但是有一些外部约束不允许我这样做。
请告诉我是否需要其他信息
解决方案
我建议使用暂存过程来执行此操作:
1. 创建一个与目标表具有相似架构的暂存表
2. 在加载之前从暂存表中删除所有行(您可以使用 truncate)
3. 将文件上传到暂存表
4. 加载您的数据进入最终表格 - 在这里您可以使用一些逻辑来仅插入新行并更新现有行。合并命令在这种情况下很有用。
对每个源表重复步骤 2 到 4。
推荐阅读
- angular - 更新到 HttpClient 时:解析期间未捕获 Promise/Http Failure
- php - 使用 Vue + PHP 进行实时搜索
- python - 转换数据类型时如何让“应用映射”正常工作
- 3scale - 如何在 url 路径参数的映射规则中定义模式
- python - 非常不适合使用 scipy.optimize 的对数正态密度函数
- macos - VPN Cisco IPSec 更改 DNS
- elasticsearch - 使用无痛脚本计算 Elastic 6.7 中的两个日期持续时间
- javascript - React .fetch REST 调用在渲染中返回空列表,但知道对象的字段?
- javascript - Hapi.js v17 CORS 飞行前不返回 Access-Control-Allow-Origin 标头
- here-api - 如何使用附近的车站 api 仅显示火车站/地铁站?