我想在ID列和日期时间列上添加约束,以便只能在一天内输入一次id
alter table Table1
...
add constraint pk_id Primary Key (datetime,ID)
如果已为以下id
插入datetime 2015-03-17 12:48:00
,则不会再次插入同一日期时间,但如果时间更改为2015-03-17 12:45:00
id
再次进入。
有没有办法将约束添加到日期时间列的日期部分?
答案 0 :(得分:3)
我认为你不能,但你有不同的选择:
编辑:根据@ a-ツ评论还有其他选择:
答案 1 :(得分:-1)
您必须提供复合主键或检查约束..
检查此示例。对于复合键,在设计模式下,只需选择列和右键单击并选择" primary-key"。
CREATE TABLE [dbo].[Table_1](
[id] [int] NOT NULL,
[datecolumn] [datetime] NOT NULL,
[name] [varchar](50) NULL,
CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED
(
[id] ASC,
[datecolumn] ASC
)
) ON [PRIMARY]
GO
insert into Table_1 values (1, '2014-03-17 00:00:00.000', 'othercolumnvalue')
insert into Table_1 values (1, '2014-03-17 12:00:00.000', 'othercolumnvalue')
insert into Table_1 values (1, '2014-03-17 02:10:59.000', 'othercolumnvalue')
--this will give error as you already entered the same value.
insert into Table_1 values (1, '2014-03-17 00:00:00.000', 'othercolumnvalue')
how do I make a composite key with SQL Server Management Studio?