Can a sql server table have two identity columns?

前端 未结 9 1864
孤城傲影
孤城傲影 2020-11-27 06:23

I need to have one column as the primary key and another to auto increment an order number field. Is this possible?

EDIT: I think I\'ll just use a composite number a

9条回答
  •  悲哀的现实
    2020-11-27 07:12

    You can use Sequence for second column with default value IF you use SQL Server 2012

    --Create the Test schema
    CREATE SCHEMA Test ;
    GO
    
    -- Create a sequence
    CREATE SEQUENCE Test.SORT_ID_seq
        START WITH 1
        INCREMENT BY 1 ;
    GO
    
    -- Create a table
    CREATE TABLE Test.Foo
        (PK_ID int IDENTITY (1,1) PRIMARY KEY,
        SORT_ID int not null  DEFAULT (NEXT VALUE FOR Test.SORT_ID_seq));
    GO
    
    INSERT INTO Test.Foo VALUES ( DEFAULT )
    INSERT INTO Test.Foo VALUES ( DEFAULT )
    INSERT INTO Test.Foo VALUES ( DEFAULT )
    
    SELECT * FROM Test.Foo 
    
    -- Cleanup
    --DROP TABLE Test.Foo
    --DROP SEQUENCE Test.SORT_ID_seq
    --DROP SCHEMA Test
    

    http://technet.microsoft.com/en-us/library/ff878058.aspx

提交回复
热议问题