在SQL Server 2012中将newid()存储在数据类型为UNIQUEIDENTIFIER的列中有什么优势?

萨曼莎JT星

我的SQL Server 2012表具有以下列定义:

[GlobalId]         UNIQUEIDENTIFIER DEFAULT (newid()) NULL,

将其定义为UNIQUEIDENTIFIER有什么好处,或者我可以将其定义为字符串。我问的原因是因为以后我可能不想存储GUID的全部值,并且可能想生成自己的ID。

现在将其存储为UNIQUEIDENTIFIER,我可以将定义更改为字符串并且仍然可以使用DEFAULT吗?

这是我存储在GlobalId列中的示例:

6ffcac5e-88f1-4207-bbbe-0fc14265c01f
尼古拉斯·R

如valex提供的链接所述,

GUID是唯一的二进制数;世界上没有其他计算机会生成该GUID值的副本。GUID的主要用途是分配一个标识符,该标识符在具有许多站点的许多计算机的网络中必须是唯一的。

因此,兴趣就是这个著名的独特事实。

如果要使用字符串值,请使用字符串值,但是sql server中允许生成新值的内置函数是NEWID和NEWSEQUENTIALID,这提供了UNIQUEIDENTIFIERs。

您没有必要对标识列使用UNIQUEIDENTIFIER,这取决于您的数据模型和服务器:如果只有一个数据库服务器生成密钥,那么序列ID就可以了,并且效率更高(而且容易阅读得多) ),而不是GUID。如果多个服务器生成密钥,则使用GUID

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在SQL Server 2012中将数据类型从日期更改为int?

在SQL Server中获取所有具有主键且数据类型为uniqueidentifier的表

在SQL Server 2005中将datetime2创建为自定义数据类型

如何在SQL Server中存储Point数据类型?

是否有任何数据类型可以在SQL Server中存储超过2 GB的数据

SQL Server中的smallmoney数据类型单位是什么?

SQL Server中的SYSNAME数据类型是什么?

SQL Server中“货币”的数据类型是什么?

什么是 Delphi 中的 SQL Server Money 等效数据类型

SQL Server中Date的数据类型是什么?

SQL Server在数据中存储通配符

更新SQL Server中的数据类型图像列

如何在SQL Server中更改列的数据类型?

在SQL Server中更改列的数据类型

如何检查 SQL Server 中的实际列数据类型

将SQL Server中的Time(0)数据类型设置为NULL

无法将新列添加到具有TIMESTAMP数据类型的SQL Server表中

将SQL Server列中的空白与整数数据类型

在SQL Server中将varchar数据类型转换为带存储过程错误的小数

在SQL Server中将位数据类型转换为VarChar

在SQL Server 2008中的表的单行中存储,检索和更新序列号(数据类型为int)

SQL Server数据类型,用于存储正数

SQL Server 2008 R2:使用存储为BLOB(图像数据类型)的XML

在SQL Server中以XML数据类型存储存储过程的文本

PHP PDO unixODBC FreeTDS SQL Server在存储过程中“将数据类型varchar(max)转换为datetime”

数据类型匹配(Excel列X Sql Server列)

如何在SQL Server中将列的数据类型从整数更改为文本?

如何在 SQL Server 中将整数数据类型列值转换为日期时间

SQL Server浮动数据类型行为