SQL Server:SELECT上的触发器? (计算栏)

时间:2017-04-13 15:58:08

标签: sql-server triggers calculated-columns

我需要一个动态列,以便根据现在和日期列DaysToExpiration之间的天数计算列Expiration Date

我的计划是添加一个触发器,该触发器触发表的SELECT语句。

  1. 这可能吗?怎么样?
  2. 有更好的方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

没有提供SELECT操作的触发器。您可以使用存储过程,该存储过程接受从SELECT查询获取的参数,并在所需的SELECT查询后调用此过程。

答案 1 :(得分:1)

你说“我的计划是在表格的SELECT语句中添加一个触发的触发器。”

在这种情况下,为什么要有一个列,为什么不在最终查询中选择它?

Select DateDiff(day,getdate(),ExpirationDate) AS [DaysToExpiration]

如果必须将其保留并存储在列中,则可以按照注释中的建议将其设置为计算列。或者您可以在UPDATE / INSERT上触发表触发器,因此在插入或更新ExpirationDate时,它会将DaysToExpiration列设置为提供的代码的结果。