插入时忽略 DATE 约束

tba*_*llo 0 sql-server constraint azure-sql-database check-constraints

我一定是在某个地方遗漏了一些东西..

Azure SQL

DispatchedOn is a DateTime column

ALTER TABLE [table] WITH CHECK ADD CONSTRAINT [CK_ReportDate6MonthRollGreater] CHECK  ((CONVERT([date],[DispatchedOn])>='2022-12-07'))
GO

ALTER TABLE [table] CHECK CONSTRAINT [CK_ReportDate6MonthRollGreater]
GO
Run Code Online (Sandbox Code Playgroud)

我可以插入日期 2022-12-01

在此输入图像描述

Dan*_*man 5

CHECKCHECK_CONSTRAINTST-SQL BULK INSERT、BCP in 或 SSIS 目标中省略该选项时,SQL Server 将允许插入违反约束的日期。此外,在操作之后该约束被标记为不可信,以指示现有数据可能违反该约束。

运行此查询以验证约束是否受信任并已启用:

SELECT 
      name
    , is_disabled
    , is_not_trusted 
FROM sys.check_constraints 
WHERE name = N'CK_ReportDate6MonthRollGreater';
Run Code Online (Sandbox Code Playgroud)