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 
    版权声明:本文为博主原创文章,转载请附上博文链接!


  • 相关阅读:
    ES6新特性
    浏览器兼容问题
    跨域
    箭头函数与普通函数的区别
    单页面应用
    vue试题
    Git 常用命令
    【分享代码】一个笨办法获取容器的剩余内存
    【笔记】thanos receiver的router模式
    【分享】让prometheus支持PUSH模式,可以使用remote write协议推送数据
  • 原文地址:https://www.cnblogs.com/frankcui/p/10484466.html
Copyright © 2011-2022 走看看