如何为新记录或更新记录创建sql约束

时间:2014-02-23 00:46:25

标签: c# sql sql-server tsql

我想在每列新行中自动插入创建日期时间,并在更新时间列中更新该行时更新时间。我知道可以使用sql约束来完成。

我已经完成了创建日期:

ALTER TABLE Persons
  ADD CONSTRAINT CO_Persons_AutoCreateDate DEFAULT GetDate() for CreatedDate

但是如何在更新日期更新记录呢?

2 个答案:

答案 0 :(得分:2)

你需要创建一个类似这样的触发器:

CREATE TRIGGER tr_somename
ON Persons
FOR UPDATE
BEGIN
 SET NOCOUNT ON;

  UPDATE T
  SET T.createddate = GETDATE()
  FROM persons T INNER JOIN INSERTED I
    ON t.pk_column = I.pk_column

END

答案 1 :(得分:0)

INSERT语句中,使用除CO_Persons_AutoCreateDate以外的所有列。

例如,如果你有这样的表Persons

Create Table Persons
(
A int,
B int,
CO_Persons_AutoCreateDate datetime
)

使用INSERT声明:

insert into Persons (A,B) values (1,1)