Я создал новую таблицу, включающую проверочное ограничение, используя предложение in, чтобы создать список разрешенных записей, или, по крайней мере, это был план.Команда создания таблицы выполнена без ошибок, однако в процессе тестирования я могу вставить строки без ограничения, предотвращающего неправильные значения для столбца «ПРИЧИНА»
Я провел небольшое исследование в Интернете, но я не понял, что это нашеще.Я включу оператор создания таблицы ниже.
'' '
USE TEST
GO
CREATE TABLE EMP_POINTS (
ROWID int NOT NULL IDENTITY(1,1),
WEEK_ID nvarchar(15) NOT NULL,
EMPLOYEE_ID nvarchar(15) NOT NULL,
DATE date NOT NULL,
CAUSE nvarchar(15),
POINTS decimal(2,1),
PRIMARY KEY(EMPLOYEE_ID, DATE),
CONSTRAINT FK_EmpID FOREIGN KEY(EMPLOYEE_ID) REFERENCES EMPLOYEE(ID),
CONSTRAINT chk_cause CHECK (
CAUSE IN('Late In','Early Out','E & L', 'NCNS', 'Absent', '0.5','1.0', NULL)
)
);
' ''
Я ожидаю, что единственные значения, которые будут разрешены в ПРИЧИНЕстолбец будет идентифицирован в ограничении chk_cause, однако он позволяет вводить любые значения.