1. 程式人生 > 實用技巧 >Sql:SQL Server CREATE SEQUENCE statement

Sql:SQL Server CREATE SEQUENCE statement

---自動增長跳至1001  https://stackoverflow.com/questions/17587094/identity-column-value-suddenly-jumps-to-1001-in-sql-server
--1. 使用序列 (Sequence)
--2. 為SQL Server 註冊啟動引數 -t272
IF EXISTS(SELECT * FROM sys.sequences WHERE name = N'Id_Sequence')
    DROP SEQUENCE Id_Sequence;
GO
CREATE SEQUENCE Id_Sequence
    AS INT
    START WITH 1
    INCREMENT BY 1
    MINVALUE 0
    NO MAXVALUE
   NO CACHE
GO

DROP table DuInvoiceReceipts
go


CREATE TABLE DuInvoiceReceipts
(
    Duid   INT PRIMARY KEY
        DEFAULT (NEXT VALUE FOR Id_Sequence), 
    orderId     INT NOT NULL, 
    isLate      BIT NOT NULL,
    receiptDate Datetime NOT NULL,
    note NVARCHAR(100)
);
go

insert into DuInvoiceReceipts(orderId,isLate,receiptDate,note) 
SELECT 2,1,getdate(),N'geovindu' union
SELECT 3,1,getdate(),N'塗聚文' union
SELECT 4,1,getdate(),N'geovin' union
SELECT 5,1,getdate(),N'du' union
SELECT 6,0,getdate(),N'塗年生' union
SELECT 7,1,getdate(),N'江西' union
SELECT 8,1,getdate(),N'吉安' union
SELECT 9,1,getdate(),N'井崗山' 
go

select * from DuInvoiceReceipts
go

--
SELECT * FROM sys.sequences WHERE name = 'Id_Sequence' ;  
go
--查詢一下個值 
SELECT NEXT VALUE FOR Id_Sequence
go