【问题标题】:SQL trigger for expiration date过期日期的 SQL 触发器
【发布时间】:2015-03-09 06:01:21
【问题描述】:

我有一个表格,其中包含 expiration_dateisExpired 列。如果列 expiration_date 超过当前日期,我想创建一个触发器以将列 isExpired 设置为 1。

我没有使用触发器的经验。

【问题讨论】:

  • 您可以为此使用计算列。
  • 好的。我也不知道那是什么。 @马丁史密斯

标签: sql sql-server triggers ddl


【解决方案1】:

正如 Martin Smith 在 cmets 中建议的那样,触发器可能不是这里的最佳方法。相反,您可以使用computed column,简而言之,它的值由表中的其他一些列计算(“计算”)。

在你的情况下:

CREATE TABLE my_table (
    col1 VARCHAR(10),
    col2 VARCHAR(20),
    expiration_date DATE,
    is_expired AS CASE WHEN expiration_date > GETDATE() THEN 1 ELSE 0 END
);

【讨论】:

  • 感谢@Mureinik 的帮助。但是执行查询后出现错误:"ALTER TABLE tblInventory ADD isExpired as EXPR_DATE > GETDATE()" Error: Incorrect syntax near '>'.
猜你喜欢
  • 1970-01-01
  • 2014-07-28
  • 2016-09-02
  • 2014-02-19
  • 1970-01-01
  • 2015-05-24
  • 2018-12-04
  • 2013-04-17
  • 1970-01-01
相关资源
最近更新 更多