• SQL Server ->> 分区表上创建唯一分区索引


    今天在读《Oracle高级SQL编程》这本书的时候,在关于Oracle的全局索引的章节里面有一段讲到如果对一张分区表创建一条唯一索引,而索引本身也是分区的,那就必须把分区列也加入到索引列表中去,当然不一定要再第一列。后来自己就去SQL Server上也试了一下。果真和Oracle一样的道理。再看到后面章节算是理解了。因为如果表被分区了,其实就是每个分区等于一个索引树了。这也就是为什么在SQL Server下这张sys.partitions系统视图中每个partition对应了一个hobt_id。

    create partition function PF_One_Fifty_OneHundred(INT)
    AS RANGE LEFT FOR VALUES(1,50,100)
    GO
    
    CREATE PARTITION SCHEME PS_One_Fifty_OneHundred
    AS PARTITION PF_One_Fifty_OneHundred
    TO ([PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY]);
    GO
    
    --DROP TABLE  dbo.partition_test
    
    
    
    create table dbo.partition_test
    (
        col1 INT    ,
        col2 INT
    
    ) ON PS_One_Fifty_OneHundred(col1)
    GO
    
    CREATE UNIQUE INDEX UIX_partition_test_col1 ON dbo.partition_test(col1) ON PS_One_Fifty_OneHundred(col2);
    
    
    Msg 1913, Level 16, State 1, Line 35
    The operation failed because an index or statistics with name 'UIX_partition_test_col1' already exists on table 'dbo.partition_test'.
  • 相关阅读:
    服务返返回状态码详解
    LeetCode#28 Implement strStr()
    LeetCode#58 Length of Last Word
    LeetCode#66 Plus One
    spooling技术
    文件的打开与关闭
    DMA方式与通道方式
    中断向量、向量中断、向量地址
    中断响应优先级和中断处理优先级
    I/O接口
  • 原文地址:https://www.cnblogs.com/jenrrychen/p/4641747.html
Copyright © 2020-2023  润新知