--drop table index_tb 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 差不多 --创建unique alter table index_tb add constraint uniqueindex unique(id) --删除unique alter table index_tb drop constraint uniqueindexinsert into index_tb(name,xb) select '12345','mm'select * from index_tbdelete index_tb
create table index_tb(id int,name varchar(8))--写一个 8位字符,前两位是0,3~4位是数字,第5位为下划线,6~8位为字母alter table index_tb add constraint ck_index CHECK (name like '[0][0][0-9][0-9][_][a-z][a-z][a-z]')insert into index_tb(id,name) select 1,'0012_ab0' --INSERT 语句与 CHECK 约束"ck_index"冲突。该冲突发生于数据库"my",表"dbo.index_tb", column 'name'。insert into index_tb(id,name) select 1,'0012_abc'--ok
to 5楼:谢谢 再麻烦你一下 还有2个问题 1.但是如果后面100个英文字符呢?不会让我写100个[a-z]吧, 2.中文字符又怎么写?
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 差不多
--创建unique
alter table index_tb add constraint uniqueindex unique(id)
--删除unique
alter table index_tb drop constraint uniqueindexinsert into index_tb(name,xb) select '12345','mm'select * from index_tbdelete index_tb
CHECK (name like '[0][0][0-9][0-9][_][a-z][a-z][a-z]')insert into index_tb(id,name) select 1,'0012_ab0'
--INSERT 语句与 CHECK 约束"ck_index"冲突。该冲突发生于数据库"my",表"dbo.index_tb", column 'name'。insert into index_tb(id,name) select 1,'0012_abc'--ok
再麻烦你一下 还有2个问题
1.但是如果后面100个英文字符呢?不会让我写100个[a-z]吧,
2.中文字符又怎么写?