У меня возникают трудности с SQL Server, где я создаю таблицу с именем GUEST
и используя date
как тип данных, а не null и имеет значение по умолчанию 'today' и ограничение по умолчанию дата должна быть равна или позже 01 декабря 2010 года.Значение даты и ограничения даты и времени SQL Server
Однако при попытке тестирования я столкнулся с проблемой, вставив строку со значениями по умолчанию.
Как я могу позволить SQL Server, чтобы показать текущую дату, а не по умолчанию getDate()
в который по умолчанию 1900-01-01, противоречащего моим ограничением состояния даты должны быть позже, чем 01 -дек-2010
INSERT INTO GUEST
VALUES('John' ,'');
приводит к ошибке:
The INSERT statement conflicted with the CHECK constraint "chk_DATEJOINED". The conflict occurred table "dbo.GUEST", column 'dateJoined'.
я сделал некоторый код, чтобы показать
CREATE TABLE GUEST
(
[...]
guestNum int NOT NULL IDENTITY(5,1),
name varchar(40) NOT NULL,
dateJoined date NOT NULL DEFAULT GETDATE()
[...]
CONSTRAINT chk_DATEJOINED
CHECK (dateJoined >= CAST('01-dec-2010' as DATETIME))
)
Привет, я использовал ('') для проверки значения по умолчанию, и он показывает 1900-01-01, который конфликтует с моим условием ограничения даты, должен быть более чем 01 -dec-2010 – jukira
'' допустимым строковым символом. Вот почему я сказал вам, если вы хотите проверить значение по умолчанию, не передавайте значение этому столбцу. SQL-сервер заполнит значение по умолчанию для этого столбца для каждой вставки. –