复合主键部分上的SQL Server检查约束
尝试学习SQL。似乎找不到这个问题的答案,或者如果我找到了,我不知道足够的SQL来识别它。是否可以在其中一个键列上创建具有复合主键和检查约束的表 具体而言,这在以下情况下失败: INSERT语句与CHECK约束“CH_AddressType”冲突。冲突发生在数据库“tempdb”表“dbo”中 如果我在表中注释掉check约束,创建并取消对alter表的注释,insert就会工作 这两种创建表格的方法…创建相同的表格吗?我缺少什么复合主键部分上的SQL Server检查约束,sql,sql-server,Sql,Sql Server,尝试学习SQL。似乎找不到这个问题的答案,或者如果我找到了,我不知道足够的SQL来识别它。是否可以在其中一个键列上创建具有复合主键和检查约束的表 具体而言,这在以下情况下失败: INSERT语句与CHECK约束“CH_AddressType”冲突。冲突发生在数据库“tempdb”表“dbo”中 如果我在表中注释掉check约束,创建并取消对alter表的注释,insert就会工作 这两种创建表格的方法…创建相同的表格吗?我缺少什么 create table #t ( entityNo
create table #t
(
entityNo int not null,
addressType char(1) not null,
valid char(1) not null,
address1 varchar(256) not null,
address2 varchar(256) not null,
city varchar(128) not null,
stateCode char(2) not null,
zipCode char(5) not null,
dtCreate datetime not null,
dtUpdate datetime not null
constraint PK_Address_Entity
primary key (entityNo, addressType),
constraint CH_AddressValid
check (valid in ('Y', 'N')),
constraint CH_AddressType
check (valid in ('H', 'V'))
)
go
--alter table #t
-- add constraint CH_Address_Type check ((addressType) in ('H', 'V'))
--go
insert into #t (entityNo, addressType, valid, address1, address2, city, stateCode, zipCode, dtCreate, dtUpdate)
values (100, 'H', 'Y', '100 Some Street', '' , 'Someville', 'PA', '19335', '2016-10-08', '2016-10-08')
select * from #t
go
drop table #t
go
约束Chu地址类型检查(在('H','V')中有效)
应该是
constraint CH_AddressType check(AddressType in('H','V'))
在哪里有效?是的。有没有办法关闭问题/将其标记为已接受(可能也在我鼻子底下)。@Joe点击灰色✓代码>在答案的左边,投票部分的右边