zoukankan      html  css  js  c++  java
  • SQL Server CLUSTERED

    CREATE TABLE dbo.t_MetricBook
    (
        MetricSetID        smallint      NOT NULL,
        BookID             smallint      NOT NULL,
        ReportingCcyAmount decimal(18,2) NOT NULL,
        CONSTRAINT PK_t_MetricBook
        PRIMARY KEY CLUSTERED (MetricSetID,BookID)
    )

    解释:
    CONSTRAINT PK_t_MetricBook PRIMARY KEY CLUSTERED (MetricSetID,BookID)

    CONSTRAINT :创建约束
    PK_t_MetricBook:主键的名称
    PRIMARY KEY: 表明创建的是主键约束
    CLUSTERED :表示索引类型是聚集索引

    ---------------------------------------

    详细介绍
    在创建Table设定主键的时候,SQL Server会自动创建一个对应的Clustered Index。如果使用Microsoft SQL Server Management Studio工具,发现这个Clustered Index只能删除,不能通过界面进行修改。这让人误以为在主键上只能建立Clustered Index, 实际上却不是这样的。
    
       如果通过Script 创建,我们可以指定在主键上建立Clustered / Non-Clustered Index。示例如下:
    
    CREATE TABLE [dbo].[table_1](
        [id] [int] NOT NULL,
    PRIMARY KEY 
    (
        [id] ASC
    ))
     
    CREATE TABLE [dbo].[table_2](
        [id] [int] NOT NULL,
    PRIMARY KEY NONCLUSTERED 
    (
        [id] ASC
    ))
    
    table_1 上将默认建立Clustered Index, table_2则建立的是Non Clustered Index。
    
    
    对于已经建立主键的Table,如果要改成Non Clustered Index, 可以先删除主键,再重新创建成Non Clustered Index
    
    ALTER TABLE [dbo].[table_1]DROP CONSTRAINT PK__table_1__3213E83F3C0AD43D
    go
    ALTER TABLE [dbo].[table_1] ADD CONSTRAINT PK__table_1__3213E83F3C0AD43D 
        PRIMARY KEY NONCLUSTERED (id)
    go
    
    在创建Table的时候,也可以同时设定一个栏位为主键,而另外一个栏位是Clustered index.
    
    CREATE TABLE [dbo].[table_3]
    (id INT NOT NULL PRIMARY KEY,
    col1 INT NOT NULL UNIQUE CLUSTERED)
    go
    
    
    综上所述,主键只是一个Constraint, 主键上能够建立Clustered / Non-Clustered Index,  当然通用的最佳实践是把主键创建为Clustered Index--------------------- 
    作者:Cassaba 
    来源:CSDN 
    原文:https://blog.csdn.net/cassaba/article/details/52043058 
    版权声明:本文为博主原创文章,转载请附上博文链接!


  • 相关阅读:
    实验十四 线程设计
    实验十三 窗口设计
    实验十二 swing图形界面设计
    实验十一 图形界面二
    实验十 图形用户界面设计
    实验九 异常的抛出,捕获并处理
    实验八 接口与实现接口的类
    实验六 类的封装
    实验五:任意输入10个int类型数据,排序输出,再找出素数
    实验四:采用一维数组输出等腰三角形的杨辉三角
  • 原文地址:https://www.cnblogs.com/frankcui/p/10484466.html
Copyright © 2011-2022 走看看