Autoincrement uniqueidentifier

前端 未结 4 1497
忘了有多久
忘了有多久 2020-12-13 10:01

Basically I want to use uniqueidentifier in similar way as identity. I don\'t want to insert values into it, It should just insert values automatically, different value for

相关标签:
4条回答
  • 2020-12-13 10:29

    Or even better: use the newsequentialid() as the default for your UNIQUEIDENITIFER column. That'll give you a somewhat sequential series of GUIDs.

    CREATE TABLE dbo.YourTable   
       (SerialID UNIQUEIDENTIFIER 
            CONSTRAINT DF_SerialID DEFAULT newsequentialid(),
         .... (other columns)......
       )
    

    Trouble is: newsequentialid is only available as a column default - you cannot call it as a function or anything. But that seems to fit your requirements.

    UPDATE: there appears to be an acknowledged bug in SQL Server Management Studio that prevents specifying newsequentialid() as the default for a column in the interactive table designer.

    See: http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/cad8a4d7-714f-44a2-adb0-569655ac66e6

    Workaround: create your table without specifying any default, and then type in this T-SQL statement in a normal query window and run it:

    ALTER TABLE dbo.YourTable
        ADD CONSTRAINT DF_SerialID DEFAULT newsequentialid() FOR SerialID
    

    That should do the trick!

    0 讨论(0)
  • 2020-12-13 10:31

    Use NewID() as the default value. At least this is what you would do for SQL Server.

    0 讨论(0)
  • 2020-12-13 10:35

    I think

    CREATE TABLE dbo.YourTable
    (
        SerialID UNIQUEIDENTIFIER PRIMARY KEY DEFAULT newsequentialid()
    )
    

    is simplier

    0 讨论(0)
  • 2020-12-13 10:36

    I guess you mean in SQLServer and not C#...

    Set the column as PRIMARY KEY and ROWGUID

    RowGuid http://img341.imageshack.us/img341/8867/sqlserverrowguid.png

    0 讨论(0)
提交回复
热议问题