SQL Server中alter对于表的常用操作
--alter table语句使用--add增加字段约束,格式:add constraint 约束名 约束定义
alter table UserTableadd constraint CK_UserTable_Sex check(sex IN ('男','女'));
alter table UserTableadd constraint CK_UserTable_Age check(0<age and age<120);
--add增加新列,格式:add 新增列名 数据类型 [约束]
alter table UserTableadd Email varchar(20) null;
--add添加多个字段,格式:ADD 字段1 数据类型 约束, 字段2 数据类型 约束, ...
alter table UserTableadd text1 int null,text2 int null--alter column修改数据类型,格式:ALTER COLUMN 列名 新数据类型
alter table UserTablealter column text1 varchar(20)
sp_help UserTable; --查看整个表的所有属性
--alter column修改为空性:alter column 列名 数据类型 null/not null;
alter table UserTablealter column phone int not null;--drop删除列,格式:drop column 列名
alter table UserTabledrop column text1;
--drop删除约束,格式:drop constraint 列名
alter table UserTableadd constraint text2 check(text2!=100);
alter table Usertabledrop constraint text2;
本人使用的表样式为:
创建和管理索引:
索引的主要功能是保证索引值的唯一性和加速数据检索。在对表创建索引时应注意:如果列的数据类型为text、image或bit,则不应在此列上创建索引;当updata和insert操作的性能比select操作的性能更为重要时,也不应创建索引。
用的还是上述的表
/*基本创建格式
create [unique] [clustered] [nonclustered] index 索引名 on 表名(列名);
unique:表示建立唯一索引,即不允许有两行具有相同的索引值;
clustered:表示建立聚集索引。每张表只能有一个聚集索引,未指明clustered时表明创建的索引是非聚集索引
nonclustered:表示建立非聚集索引
*/
--创建普通索引,格式:create index 索引名 on 表名(列名)
create index 测试2 on UserTable(text2);
--创建唯一索引,格式:create unique index 索引名 in 表名(列名)
create unique index Users_Name on UserTable(name);
--删除索引,格式:drop index 索引名 on 表名;
drop index 测试2 on UserTable;
--查看表中的索引,法一:exex sp_helpindex '表名'
exec sp_helpindex 'UserTable';
--查看表中的索引,法二:
select name as 索引名,type_desc as 索引类型,is_unique as 是否唯一
from sys.indexes where object_id=OBJECT_ID('UserTable');