Sql server 如何在SQL Server数据库中生成唯一的数字

Sql server 如何在SQL Server数据库中生成唯一的数字,sql-server,database,relational-database,unique-index,mssql-jdbc,Sql Server,Database,Relational Database,Unique Index,Mssql Jdbc,我希望通过唯一id维护数据库中所有表中的所有列,并且id应按递增顺序排列 当我将在数据库的任何表中添加一列时,该列应通过其在整个数据库中的id唯一标识。有一个T-SQL关键字IDENTITY使用它自动递增一列 如果定义一个表,它将如下所示: CREATE TABLE MyTabel ( ID int IDENTITY(1,1) PRIMARY KEY, SomeColumn varchar(100) NOT NULL, AnotherColumn VARCHAR(1

我希望通过唯一id维护数据库中所有表中的所有列,并且id应按递增顺序排列


当我将在数据库的任何表中添加一列时,该列应通过其在整个数据库中的id唯一标识。

有一个T-SQL关键字
IDENTITY
使用它自动递增一列

如果定义一个表,它将如下所示:

CREATE TABLE MyTabel
(
     ID int IDENTITY(1,1) PRIMARY KEY,
     SomeColumn varchar(100) NOT NULL,
     AnotherColumn VARCHAR(100)
)
IDENTITY
的第一个值定义了它的初始值。第二个值是增量。因此,如果您编写类似于
IDENTITY(100,10)
的代码,那么初始ID(您添加的第一行的第一个ID)将是100。第二个110,第三个120

+++编辑+++

CREATE TABLE MyTable
(
    ID uniqueidentifier NEWID() PRIMARY KEY,
    SomeColumn varchar(100) NOT NULL,
    AnotherColumn VARCHAR(100)
)

guid不够好?您可以使用序列,但这可能会成为一个热点并导致问题您已经陈述了您的需求,但没有提出任何问题。你能展示一下你的尝试吗?随意将
IDENTITY
列作为主键添加到所有表中,这会导致错误的数据模型。我使用了它,但这将使此规则仅限于MyTable表,是否有任何方法可以按id递增的顺序保持列的唯一性(与所有可用表中的所有列进行比较)在数据库中。有一个名为NEWID()的MS-SQL函数,它将为数据库生成一个16字节的全局唯一ID。要用它定义一个表,它应该像上面那样工作。我编辑了我的答案……但这是不可能的,因为你的整个数据库的数量在不断增加。调用此函数只会给您任何随机ID,没有特定顺序。