我使用的SQLServer2008R2数据库,请问大家如何在建表Create Table的时候加普通索引(不是主键、唯一约束),就是普通的索引
CREATE TABLE ItemTable(
ItemId nvarchar(20) NOT NULL CONSTRAINT DF_301004230 DEFAULT '',
Name nvarchar(20) NOT NULL CONSTRAINT DF_30100429 DEFAULT '',
INDEX ItemIdx NONCLUSTERED (ItemId,Name)
)
这个是我现在的语句,放到SQLServer查询里面报错,错误信息:
消息 1018,级别 15,状态 1,第 4 行
'INDEX' 附近有语法错误。如果它要作为表提示的一部分,则必须有 WITH 关键字和圆括号。
我应该怎么写才不会报错符合sql规范,谢谢。

解决方案 »

  1.   

    在建表时创建索引我就知道这一种方法。
    CREATE TABLE ItemTable(
        ItemId nvarchar(20)NOT NULL CONSTRAINT DF_301004230 DEFAULT '' primary key NONCLUSTERED  ,
        Name nvarchar(20) NOT NULL CONSTRAINT DF_30100429 DEFAULT '', 
    )30100429 DEFAULT '', 
    )
      

  2.   

    Server 2008R2还不支持这种想法,而CONSTRAINT只支持UNIQUE or PRIMARY KEY,你这里只是不同索引又不要求唯一,你还是建完表,再建索引吧CREATE TABLE ItemTable(
        ItemId nvarchar(20) NOT NULL CONSTRAINT DF_301004230 DEFAULT '',
        Name nvarchar(20) NOT NULL CONSTRAINT DF_30100429 DEFAULT ''--,
      --  INDEX ItemIdx NONCLUSTERED (ItemId,Name)
    )
    GO
    CREATE NONCLUSTERED INDEX ItemIdx ON ItemTable(ItemId,Name)