【发布时间】:2017-03-23 08:55:44
【问题描述】:
我想知道是否可以在表中创建一个列,它会根据同一个表中另一列的值自动获取它们的值,下面的示例进行说明:
CREATE TABLE dbo.example
(
m_id INT NOT NULL CONSTRAINT PK_mid PRIMARY KEY IDENTITY (1,1),
m_name NVARCHAR(30) NOT NULL,
m_startdate DATE NOT NULL CONSTRAINT CHK_startdate CHECK(m_startdate <= SYSDATETIME()),
m_enddate DATE CONSTRAINT CHK_enddate CHECK(m_enddate <= SYSDATETIME()),
m_status INT CONSTRAINT CHK_status CHECK(m_status = 0 or m_status = 1)
)
如果 m_enddate 为空,我想让 m_status 接收 0,如果它不为空,则接收 1。这当然是在插入一行时。
【问题讨论】:
-
据我所知 - 你不能那样做。你能做的也许是一个触发器。
-
请参考这个link
-
确实,唯一的方法是通过触发器(顺便说一句,不仅在 INSERT 时,而且在 UPDATE 时)。
标签: sql-server