我最近在客户端 API 中发现了一个错误。它根据时间戳发送独特记录的页面。每隔一段时间,它会在上一页的末尾和下一页的开头发送相同的确切记录。
我在假设没有重复的情况下进行操作(毕竟这是一个事件日志)。因此,我做的是纯插入,而不是经历更新或某种“重复”步骤的麻烦。
我的问题是 --- 摆脱这些重复记录的最佳方法是什么,然后让 MS SQL 在插入时悄悄丢弃这些重复记录?它们肯定是在原始文件写入事务之后插入的。这些重复每 10,000 行发生一次 - 所以非常容易记忆的东西会很棒。
记录中唯一不同的部分是“ETL 批次 ID”——其他一切都是相同的。否则,每条记录都应该有一个唯一的“事件 ID”。如果我将此事件 id 设置为唯一索引/键,我可以强制 MS SQL 转储任何重复键吗?还是应用程序会在查询期间抛出错误消息并停止?