【问题标题】:Disabling INSERT operations on Default Value Columns - SQL Server禁用对默认值列的 INSERT 操作 - SQL Server
【发布时间】:2011-10-27 11:24:33
【问题描述】:

在 Sql Server 2008 中,我有一个由数据提供程序应用程序填充的表。

我想在表格中保留一个“INSERT_DATE”列,以便知道插入记录的日期。

为了做到这一点,我在 INSERT_DATE 列上定义了一个默认约束,它默认放置 GETDATE()。

但是,我不希望此列值被数据提供者应用程序覆盖。

那么,如何禁用插入 INSERT_DATE 列?

(我不能使用计算列。因为聚集索引使用 INSERT_DATE 字段)

【问题讨论】:

    标签: sql sql-server insert constraints


    【解决方案1】:

    您可以使用插入后trigger。这样一来,无论为插入的行插入该列的任何内容,您都可以更新为当前日期/时间。

    【讨论】:

      【解决方案2】:

      您可能不希望在随后更新行时也更新列。

      最好的办法是使用trigger。如果应用程序提供了一个值,您可能无法引发错误,但至少您可以通过跳过您在触发器中指定的插入中的列来正确设置它。

      【讨论】:

        猜你喜欢
        • 2014-08-18
        • 2021-03-23
        • 2014-10-24
        • 2015-08-04
        • 2020-12-11
        • 1970-01-01
        • 2016-03-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多