有一张表
book(图书)
字段名称 类型 备注
id varchar(30) 图书编号(主键)
ISBN varchar(30) ISBN
name varchar(50) 图书名称(不可为空)
kind_num int 图书类型编号
author varchar(32) 作者
price money 价格
pub varchar(100) 出版社
brief varchar(100) 图书简介SQL SERVER 2008中对ID 默认生成了聚集索引 请问针对这张表还能建立其他的索引嘛? 谢谢了 最好用T-SQL语句写
book(图书)
字段名称 类型 备注
id varchar(30) 图书编号(主键)
ISBN varchar(30) ISBN
name varchar(50) 图书名称(不可为空)
kind_num int 图书类型编号
author varchar(32) 作者
price money 价格
pub varchar(100) 出版社
brief varchar(100) 图书简介SQL SERVER 2008中对ID 默认生成了聚集索引 请问针对这张表还能建立其他的索引嘛? 谢谢了 最好用T-SQL语句写
CREATE UNIQUE NONCLUSTERED INDEX IX_book ON dbo.book(name)
这要看你表的设计.
CREATE INDEX book_name ON book (name)--创建图书名称字段的索引
如果这个表之前没有聚集索引,同时建立主键时候没有强制指定使用非聚集索引,则建立主键时候,同时建立一个唯一的聚集索引。
一张数据表只能有一个聚集索引,在MSSQL2005中可以创建249个非聚集索引,在MSSQL2008中可以创建999个聚集索引。
常用语句:
--创建聚集索引
create clustered index Idx_Area_ID on Company(Area_ID)
--创建唯一聚集索引
create unique clustered index Idx_Un_Area_ID on Company(Area_ID)
--创建非聚集索引
create nonclustered index Idx_Area_ID on Company(Area_ID)
对于PRIMARY KEY或者UNIQUE约束字段上的索引,如果是建立该约束时自动创建的索引,则不能显示使用DROP INDEX语句删除,而必须使用ALTER TABLE 表名 DROP PRIMAYR KEY名;先删除PRIMARY KEY或者UNIQUE约束,然后该索引会自动删除。
对于非PRIMARY KEY字段上的索引,不论是聚集还是非聚集,都可以显示使用
DROP INDEX 索引名 ON 表名
一些列可以包含在里面create unique clustered index idx_ISBN on book include(你需要的列名)