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


  • 相关阅读:
    Nexus 3048的NX-OS升级方法
    ASA防火墙忘记密码之后的恢复步骤
    关闭AnyConnect登录安全警告窗口
    使用vASA842配置ASDM645
    SSL 证书格式普及,PEM、CER、JKS、PKCS12
    Python基础练习
    理解管理信息系统
    各大搜索引擎蜘蛛的UserAgent
    iOS应用程序内购/内付费
    iOS开发解决:iOS8.1中UIBarButtonItem的setTitleTextAttributes对Disabled颜色设置无效问题
  • 原文地址:https://www.cnblogs.com/frankcui/p/10484466.html
Copyright © 2020-2023  润新知