我想知道是否可以在表中創建列,並根據同一表中另一列的值自動獲取它們的值,例如以下澄清:使列基於另一列的值接收0或1
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_status接受0,如果m_enddate爲null 1,如果它不爲空。這當然會在插入一行。
據我所知 - 你不能這樣做。你可以做的是觸發器。 – sagi
請參考這一個[鏈接](http://stackoverflow.com/questions/3438066/check-constraint-on-multiple-columns) – Husen
的確,唯一的方法是通過一個觸發器(順便說一下,不僅在INSERT但也在更新)。 – FDavidov