alter table dbo.Security add constraint ValidSecurityCode check (SecurityLevel in (0,1,2,3))
alter table dbo.Security add constraint ContactLocation unique (ContactID,LocationID) 为何你每次都要加这个约束呢?如果非要这么搞?可以先判断是否存在,删除之,然后再加.
alter table dbo.Security add constraint ContactLocation unique (ContactID,LocationID) 为何你每次都要加这个约束呢?如果非要这么搞?可以先判断是否存在,删除之,然后再加.
create table index_tb(id int constraint ck_id default 0,name varchar(20),xb varchar(2))
--查看表
exec sp_helpindex orders--索引
exec sp_helpconstraint index_tb --约束
exec sp_fkeys 'dbo.Person'--外键
--键不唯一,非聚集索引
create index id_index on index_tb(id)
--删除索引
drop index index_tb.id_index
--键聚集索引
create clustered index id_index on index_tb(id)
--删除索引
drop index index_tb.id_index
--创建check约束
alter table index_tb add constraint ck_index CHECK (name like '[0-9][0-9][0-9][0-9][0-9]')
alter table index_tb add constraint ck2_index check(xb in ('MM','GG'))
--删除check约束
alter table index_tb drop constraint ck2_index
--禁止表约束
alter table index_tb nocheck constraint ck_index
--恢复表约束
alter table index_tb check constraint ck_index
--禁止和恢复所有check-all关键字
select 'alter table '+name+' nocheck or check constraint all' from sysobjects where type='U'
--添加新默认值和约束
ALTER TABLE index_tb ADD CONSTRAINT de_name DEFAULT ('11111') FOR name
--删除表约束
alter table index_tb drop constraint de_name
-- 字段 UNIQUE NOT NULL = PRIMARY KEY 差不多
insert into index_tb(name,xb) select '12345','mm'select * from index_tbdelete index_tb
alter table dbo.Security
add constraint ValidSecurityCode check
(SecurityLevel in (0,1,2,3))
if not exists(select * from sysindexes where [name]= 'ContactLocation')
alter table dbo.Security
add constraint ContactLocation unique
(ContactID,LocationID)增加了两 个if语句谢谢大家的回答