在日期时间列的日期部分添加约束
ADD CONSTRAINT on date part of a datetime column
我想在多列上添加唯一约束。通常,以下脚本应该可以完成这项工作:
CREATE UNIQUE INDEX uq_yourtablename
ON dbo.yourtablename(column1, column2);
如果 columns2 是 DateTime 并且我们只想在日期部分设置约束怎么办?
一种解决方案可能是使用触发器,但我需要避免这种情况。
您可以使用计算列来虚拟存储 datetime 列的日期部分,并在唯一索引中使用它。
create table yourtablename (
column1 int,
column2 datetime,
column2_dt as convert(date, column2)
);
create unique index uq_yourtablename on yourtablename(column1, column2_dt);
我想在多列上添加唯一约束。通常,以下脚本应该可以完成这项工作:
CREATE UNIQUE INDEX uq_yourtablename
ON dbo.yourtablename(column1, column2);
如果 columns2 是 DateTime 并且我们只想在日期部分设置约束怎么办? 一种解决方案可能是使用触发器,但我需要避免这种情况。
您可以使用计算列来虚拟存储 datetime 列的日期部分,并在唯一索引中使用它。
create table yourtablename (
column1 int,
column2 datetime,
column2_dt as convert(date, column2)
);
create unique index uq_yourtablename on yourtablename(column1, column2_dt);