创建表时,一个字段可以本身即有单独索引也属于某联合索引之一吗?
比如a,b,c三个字段有一个联合索引,a还可以再单独有一个索引吗?如可以,怎么建立?create table语句怎么写?谢谢。

解决方案 »

  1.   

    IF EXISTS (SELECT 1
                FROM  SYSINDEXES
               WHERE  ID    = OBJECT_ID('TABLE_1')
                AND   NAME  = 'INDEX_3'
                AND   INDID > 0
                AND   INDID < 255)
       DROP INDEX TABLE_1.INDEX_3
    goIF EXISTS (SELECT 1
                FROM  SYSINDEXES
               WHERE  ID    = OBJECT_ID('TABLE_1')
                AND   NAME  = 'INDEX_2'
                AND   INDID > 0
                AND   INDID < 255)
       DROP INDEX TABLE_1.INDEX_2
    goIF EXISTS (SELECT 1
                FROM  SYSOBJECTS
               WHERE  ID = OBJECT_ID('TABLE_1')
                AND   TYPE = 'U')
       DROP TABLE TABLE_1
    go/*==============================================================*/
    /* Table: TABLE_1                                               */
    /*==============================================================*/
    CREATE TABLE TABLE_1 (
       COLUMN_1             INT                  NOT NULL,
       COLUMN_2             INT                  NOT NULL,
       COLUMN_3             INT                  NOT NULL,
       CONSTRAINT PK_TABLE_1 PRIMARY KEY (COLUMN_1)
    )
    go/*==============================================================*/
    /* Index: INDEX_2                                               */
    /*==============================================================*/
    CREATE INDEX INDEX_2 ON TABLE_1 (
    COLUMN_1 ASC,
    COLUMN_2 ASC,
    COLUMN_3 ASC
    )
    go/*==============================================================*/
    /* Index: INDEX_3                                               */
    /*==============================================================*/
    CREATE INDEX INDEX_3 ON TABLE_1 (
    COLUMN_1 ASC,
    COLUMN_2 ASC
    )
    go