【问题标题】:How to save new value if a Unique Constraint is violated如果违反唯一约束,如何保存新值
【发布时间】:2018-10-02 14:18:49
【问题描述】:

我正在使用 Microsoft SQL Server Management Studio 2008。我有一个表,其中包含一个名为 PAN 的列,该列具有唯一约束。我正在寻找一种方法,如果尝试在列中插入重复记录而违反约束,则将存储在 PAN 中的最大值自动增加 1。

【问题讨论】:

  • 向我们展示数据库架构、示例数据、当前和预期输出。请阅读How-to-Ask 这里是START 了解如何提高问题质量并获得更好答案的好地方。 How to create a Minimal, Complete, and Verifiable example
  • 最喜欢的是你需要一个BEFORE INSERT 触发器。但是再次不确定您要做什么/为什么要这样做
  • SQL Server 支持使用标识属性自动递增。在多用户/多线程环境中,任何自己编写的东西都极有可能失败。
  • 对我来说它看起来像XY Problem
  • 滚动您自己的递增数字充满了问题。使用身份或序列。

标签: sql sql-server sql-server-2008


【解决方案1】:

正如其中一个 cmets 所建议的那样,一种方法是 INSTEAD OF INSERT TRIGGER。

另一种方法是将您的 INSERT 放入 TRY..CATCH 结构中。

【讨论】:

    猜你喜欢
    • 2015-04-21
    • 2020-04-01
    • 1970-01-01
    • 2016-07-27
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    相关资源
    最近更新 更多