zoukankan      html  css  js  c++  java
  • sql server 2012 新知识-序列

    今天聊一聊sql 2012 上的新功能-----序列

    按我的理解,它就是为了实现全局性的唯一标识,按sql server 以前的版本,想对一张表标识很简单,比如identity,但如果要对某几张有业务关联关系的表,做一个统一的标识这时有没有好的办法来实现?

    例如:

    通过序列保证两张表ID的唯一性。

    首先创建一个测试库

    CREATE DATABASE MB_DB02
    GO

    USE MB_DB02
    GO

    --创建序列
    CREATE SEQUENCE [dbo].[Sequence_01] AS [bigint]
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    NO CYCLE
    NO CACHE

    --start with 设置起始值
    --increment by 设置增长间隔
    --min和max分别设置最小和最大值
    --cycle设置是否循环
    --cache指定缓存的设置

    --检查序列的创建情况
    SELECT start_value,increment,current_value FROM sys.sequences

    --创建测试表
    CREATE TABLE DemoA
    (
    ID BIGINT NOT NULL primary key,
    Class_type NVARCHAR ( 20 ),
    price INT
    )

    CREATE TABLE DemoB
    (
    ID BIGINT NOT NULL primary key,
    Class_type NVARCHAR ( 20 ),
    price INT
    )

    --分别对表DemoA与DemoB插入记录
    INSERT INTO DemoA VALUES ( NEXT VALUE FOR Sequence_01, '英语' ,1000)
    INSERT INTO DemoB VALUES ( NEXT VALUE FOR Sequence_01, '汉语' ,800)
    INSERT INTO DemoA VALUES ( NEXT VALUE FOR Sequence_01 ,'法语' ,1500 )
    INSERT INTO DemoB VALUES ( NEXT VALUE FOR Sequence_01 ,'德语' ,2000)

     

    ---更改序列值

    ALTER SEQUENCE Sequence_01
    RESTART WITH 50
    INCREMENT BY 30

    --检查序列的创建情况
    SELECT start_value,increment,current_value FROM sys.sequences

     

  • 相关阅读:
    动态规划>0/1背包问题 小强斋
    【C/C++和指针】auto_ptr智能指针
    WEBSHELL
    sql反模式分析1
    SQLServer之Compute/ComputeBy实现数据汇总
    链表算法大全
    【C++ Primer】自己动手编写函数 atoi(char *str)
    MySQL 5.5 的COMPRESSED INNODB 表
    【设计模式】加薪非要老总批 职责链模式
    【C和指针】const指针
  • 原文地址:https://www.cnblogs.com/fooa1098/p/7151997.html
Copyright © 2011-2022 走看看