【问题标题】:Alter CONSTRAINT or stored procedure only to check when insert not on update更改约束或存储过程仅检查何时插入不更新
【发布时间】:2012-01-10 14:43:34
【问题描述】:

我想更改一个 CONSTRAINT,它在我插入或更新表时都当前启动一个存储过程。

我想要的是存储过程只在插入时激活,而不是在更新时激活。

有没有办法做到这一点?

亲切的问候。 --edit 它是一个约束而不是一个触发器......对此感到抱歉。

【问题讨论】:

  • 我想让更新像普通更新一样通过,但是插入使用存储过程。我的意思是我根本不需要 UPDATE 触发器。谢谢! :)
  • 约束不能调用过程,但触发器可以

标签: sql sql-server stored-procedures


【解决方案1】:

确保只将触发器设置为 INSERT 触发器,如果​​您显示创建触发器语句,我可以告诉您如何操作

所以而不是

CREATE TRIGGER Test
ON Table
AFTER INSERT, UPDATE
....

你会的

ALTER TRIGGER Test
ON Table
AFTER INSERT
.......

【讨论】:

    【解决方案2】:

    你真的是指约束吗?约束要么适用,要么不适用,其目的是通过允许或拒绝列或表中的值或值组合来强制完整性(有关完整描述,请参阅MSDN)。您所描述的 触发器,这意味着 SQLMenace 已为您提供了答案,尽管您可能需要创建触发器并删除约束,如果是这样的话。为了清楚起见,也许您可​​以提供首先创建约束的 DDL?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      • 2021-07-30
      • 2011-04-05
      • 1970-01-01
      相关资源
      最近更新 更多