我 有 一 个 SQL Server 存储 过程 , 我 想 从 Spring 启动 时 并行 插入 大量 数据 , 我 必须 确保 三 列 的 复合 值 必须 是 唯一 的 。
我 不 是 SQL Server Maven , 但 AFAIK 有 键 锁 , 这 应该 对 此 有 好处 。 这 三 列 有 索引 。
该 过程 的 工作 原理 如下 : 尝试 找到 一 条 正好 包含 这 三 列 的 记录 。 如果 是 , 则 recordid 将 是 返回 值 。 如果 不 存在 , 则 插入 新 记录 并 返回 其 id 。
我 能 举 个 例子 吗 ?
1条答案
按热度按时间lnlaulya1#
第一步是(正如marc上面建议的那样)在这3列的组合上创建一个唯一索引--这不仅提供了确保唯一性所需的完整性结构,而且还允许您高效地查找/搜索具有该值组合的记录。但还有很多其他的问答可以解答。
一旦有了这些,就可以选择如何编写执行所述逻辑的过程。下面列出了两种可以使用的方法-一种是针对插入的值更有可能是唯一/新记录的情况进行更多的优化,另一种是针对插入的值很可能是重复/现有记录的情况进行优化的方法。这些只是两个。