网站首页
公司简介
软件开发
网站建设
产品展示
经典案例
解决方案
一卡通系统
短信服务
联系我们
网站建设 主机托管 快速建站 QQ:21543821 电话:0731-4454366 手机:(0)13873166650
  您的位置:首页 >> 技术文章 >> MSSQL

如何给MSSQL数据字段加索引

来源:原创  发布人:www.ruanzhi.com  发表时间:2010-4-15  点击:  字体: 【双击滚动窗口】

以下是代码片段:

CREATE   INDEX  
  为给定表或视图创建索引。  
   
  只有表或视图的所有者才能为表创建索引。表或视图的所有者可以随时创建索引,无论表中是否有数据。可以通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。  
   
  语法  
  CREATE   [   UNIQUE   ]   [   CLUSTERED   |   NONCLUSTERED   ]   INDEX   index_name  
          ON   {   table   |   view   }   (   column   [   ASC   |   DESC   ]   [   ,...n   ]   )    
  [   WITH   <   index_option   >   [   ,...n]   ]    
  [   ON   filegroup   ]  
   
  <   index_option   >   ::=    
          {   PAD_INDEX   |  
                  FILLFACTOR   =   fillfactor   |  
                  IGNORE_DUP_KEY   |  
                  DROP_EXISTING   |  
          STATISTICS_NORECOMPUTE   |  
          SORT_IN_TEMPDB      
  }  
   
   
   
  示例  
  A.   使用简单索引  
  下面的示例为   authors   表的   au_id   列创建索引。  
   
  SET   NOCOUNT   OFF  
  USE   pubs  
  IF   EXISTS   (SELECT   name   FROM   sysindexes    
              WHERE   name   =   'au_id_ind')  
        DROP   INDEX   authors.au_id_ind  
  GO  
  USE   pubs  
  CREATE   INDEX   au_id_ind  
        ON   authors   (au_id)  
  GO  
   
  B.   使用唯一聚集索引  
  下面的示例为   emp_pay   表的   employeeID   列创建索引,并且强制唯一性。因为指定了   CLUSTERED   子句,所以该索引将对磁盘上的数据进行物理排序。    
   
  SET   NOCOUNT   ON  
  USE   pubs  
  IF   EXISTS   (SELECT   *   FROM   INFORMATION_SCHEMA.TABLES    
              WHERE   TABLE_NAME   =   'emp_pay')  
        DROP   TABLE   emp_pay  
  GO  
  USE   pubs  
  IF   EXISTS   (SELECT   name   FROM   sysindexes    
              WHERE   name   =   'employeeID_ind')  
        DROP   INDEX   emp_pay.employeeID_ind  
  GO  
  USE   pubs  
  GO  
  CREATE   TABLE   emp_pay  
  (  
    employeeID   int   NOT   NULL,  
    base_pay   money   NOT   NULL,  
    commission   decimal(2,   2)   NOT   NULL  
  )  
  INSERT   emp_pay  
        VALUES   (1,   500,   .10)  
  INSERT   emp_pay    
        VALUES   (2,   1000,   .05)  
  INSERT   emp_pay    
        VALUES   (3,   800,   .07)  
  INSERT   emp_pay  
        VALUES   (5,   1500,   .03)  
  INSERT   emp_pay  
        VALUES   (9,   750,   .06)  
  GO  
  SET   NOCOUNT   OFF  
  CREATE   UNIQUE   CLUSTERED   INDEX   employeeID_ind  
        ON   emp_pay   (employeeID)  
  GO  
   
  C.   使用简单组合索引  
  下面的示例为   order_emp   表的   orderID   列和   employeeID   列创建索引。  
   
  SET   NOCOUNT   ON  
  USE   pubs  
  IF   EXISTS   (SELECT   *   FROM   INFORMATION_SCHEMA.TABLES    
              WHERE   TABLE_NAME   =   'order_emp')  
        DROP   TABLE   order_emp  
  GO  
  USE   pubs  
  IF   EXISTS   (SELECT   name   FROM   sysindexes    
              WHERE   name   =   'emp_order_ind')  
        DROP   INDEX   order_emp.emp_order_ind  
  GO  
  USE   pubs  
  GO  
  CREATE   TABLE   order_emp  
  (  
    orderID   int   IDENTITY(1000,   1),  
    employeeID   int   NOT   NULL,  
    orderdate   datetime   NOT   NULL   DEFAULT   GETDATE(),  
    orderamount   money   NOT   NULL  
  )  
   
  INSERT   order_emp   (employeeID,   orderdate,   orderamount)  
        VALUES   (5,   '4/12/98',   315.19)  
  INSERT   order_emp   (employeeID,   orderdate,   orderamount)  
        VALUES   (5,   '5/30/98',   1929.04)  
  INSERT   order_emp   (employeeID,   orderdate,   orderamount)  
        VALUES   (1,   '1/03/98',   2039.82)  
  INSERT   order_emp   (employeeID,   orderdate,   orderamount)  
        VALUES   (1,   '1/22/98',   445.29)  
  INSERT   order_emp   (employeeID,   orderdate,   orderamount)  
        VALUES   (4,   '4/05/98',   689.39)  
  INSERT   order_emp   (employeeID,   orderdate,   orderamount)  
        VALUES   (7,   '3/21/98',   1598.23)  
  INSERT   order_emp   (employeeID,   orderdate,   orderamount)  
        VALUES   (7,   '3/21/98',   445.77)  
  INSERT   order_emp   (employeeID,   orderdate,   orderamount)  
        VALUES   (7,   '3/22/98',   2178.98)  
  GO  
  SET   NOCOUNT   OFF  
  CREATE   INDEX   emp_order_ind  
        ON   order_emp   (orderID,   employeeID)  

 

Tag标签:MSSQL 数据 字段 加索引
关闭窗口】  【打印此页】 
  • 上一篇文章:MSSQL导入汉字与数字、字符混合的数据时遇到的困难?
  • 推荐产品
    ·短信群发软件及销售
    ·电子政务系统(标准版)
    ·流动人口管理系统(计...
    ·人力资源管理系统
    ·社区计生网格化管理系统
    ·社区综合事务管理系统
    ·网格化电子政务
    最新发布
    ·短信群发软件及销售
    ·长沙网站制作::快速建...
    ·自助型网站建设
    ·简约型网站建设
    ·实惠型网站建设
    ·标准型网站建设
    ·大型行业网站建设
    相关信息
    ·MSSQL导入汉字与数字、...
    ·MSSQL数据库得到所有表...
    ·MSSQL的select语句的ha...
    ·怎么给网页添加背景音乐
    ·用MSSQL语句删除重复...
    ·Sql2000,2005,2008的...
    ·本机查询另一台机器上...
    服务项目: 长沙短信群发,长沙办公自动化建设,长沙网站建设,长沙网页设计,长沙人事管理系统,长沙OA办公系统,长沙软件定制开发,长沙短信平台开发,长沙邮件系统,长沙IDC托管服务,长沙SEO优化,长沙短信群发,长沙短信群发平台,长沙短信平台,长沙短信公司,长沙短信群发公司,长沙短信群发服务公司,长沙短信群发,长沙短信群发平台,长沙短信群发公司,长沙短信群发服务公司,长沙短信群发服务,长沙短信公司,长沙短信群发服务平台,长沙短信群发服务中心,长沙短信群发中心,长沙办公自动化,长沙企业办公自动化,长沙电子政务,长沙OA,长沙客户关系管理系统,长沙社区管理系统
    友情链接: 长沙短信群发    长沙食堂售饭机    长沙短信群发平台    芙蓉区东岸乡锦林社区网    湖南数据中心    
     

    在线咨询QQ:21543821 点击这里给我发消息、895078010 点击这里给我发消息、183932503 点击这里给我发消息
    Copyrigh ® 2006-2008 长沙软智科技有限公司 版权所有       技术支持:长沙软智科技有限公司软件开发部
    地址:长沙市芙蓉区火车站凯通国际二栋三单元(天心电脑城南边)
    联系人:雷经理 电话:0731-84454366  手机:13873166650
    邮箱:ruanzhitech@126.com      湘ICP备:08103883号