Sql server SQL Server中uniqueidentifier的用途是什么?
我有一张这样的桌子:Sql server SQL Server中uniqueidentifier的用途是什么?,sql-server,Sql Server,我有一张这样的桌子: Table1 (Table_ID Int Primary Key, Name Varchar(50), ROWID Uniqueidentifier) 使用NEWID()函数设置ROWID列的默认值 我知道NEWID()函数将为每一行生成一个唯一的标识符 我想知道为什么每行都需要一个唯一的标识符?如果我们想要每一行的唯一性,我可以使用主键来实现。我是SQL新手。请告知 谢谢。uniqueidentifier是一个特定于CPU的ID,它是全局唯一的,特别是当您必须移
Table1 (Table_ID Int Primary Key, Name Varchar(50), ROWID Uniqueidentifier)
使用NEWID()
函数设置ROWID
列的默认值
我知道NEWID()
函数将为每一行生成一个唯一的标识符
我想知道为什么每行都需要一个唯一的标识符?如果我们想要每一行的唯一性,我可以使用主键来实现。我是SQL新手。请告知
谢谢。uniqueidentifier是一个特定于CPU的ID,它是全局唯一的,特别是当您必须移动数据时,它非常有用,因为行标识(整数)将在新的DB服务器上重新开始。如果您与其他系统进行接口,它可能会很有用。但是,如果您在一个独立的系统中工作,您完全可以使用您的PK作为表的“唯一”行id。假设您有一组不同的相同数据库用于不同的客户端,然后是一个中央数据库,其中包含来自所有客户端的一些信息。如果您需要中央数据库中表的唯一性,您可以使用UniqueIdentifier(大部分情况下)实现这一点。您必须询问此数据库架构的原始设计者,了解其原因。SQL Server的某些功能(如复制)确实需要GUID列才能正常工作—这可能是原因之一。但我同意你的看法-如果你已经有了主键,那么就真的不需要另一个唯一的
ROWID