日期:2014-05-19  浏览次数:20537 次

关于主键的聚集索引和排序的问题
我有一个表的结构为:

CREATE   TABLE   [test]   (
[YearMonth]   [smalldatetime]   NOT   NULL   ,
[UserID]   [char]   (8)     NOT   NULL   ,
[UserName]   [varchar]   (30)     NOT   NULL   ,
[OfficeName]   [varchar]   (30)     NOT   NULL   ,
[FactoryCode]   [char]   (2)     NOT   NULL   ,
[FactoryName]   [varchar]   (40)     NOT   NULL   ,
[Day1]   [bit]   NULL     DEFAULT   (0),
.
.
.
[Day31]   [bit]   NULL     DEFAULT   (0),
[Remark]   [varchar]   (100)     NULL   ,
[RegisteredDatetime]   [datetime]   NOT   NULL   ,
[RegisteredName]   [varchar]   (30)     NOT   NULL   ,
  PRIMARY   KEY     CLUSTERED  
(
[YearMonth],
[UserID],
[FactoryCode]
)     ON   [PRIMARY]  
GO

该表具体的数据量不确定(应该比较大),经常需要根据YearMonth,UserID或者YearMonth,FactoryCode进行检索,现在有个问题是,按照自动建立的主键的聚集索引,数据是按照YearMonth,UserID,FactoryCode进行排序的,但我只需要按照YearMonth,UserID排序,FactoryCode保持插入时候的顺序,我应该怎么做呢?谢谢

------解决方案--------------------
仍然是主键 只不过 只有两个是主键索引 主键和主键索引之间没有什么直接性关系