我的SQL Server 2012表具有以下列定义:
[GlobalId] UNIQUEIDENTIFIER DEFAULT (newid()) NULL,
将其定义为UNIQUEIDENTIFIER有什么好处,或者我可以将其定义为字符串。我问的原因是因为以后我可能不想存储GUID的全部值,并且可能想生成自己的ID。
现在将其存储为UNIQUEIDENTIFIER,我可以将定义更改为字符串并且仍然可以使用DEFAULT吗?
这是我存储在GlobalId列中的示例:
6ffcac5e-88f1-4207-bbbe-0fc14265c01f
如valex提供的链接所述,
GUID是唯一的二进制数;世界上没有其他计算机会生成该GUID值的副本。GUID的主要用途是分配一个标识符,该标识符在具有许多站点的许多计算机的网络中必须是唯一的。
因此,兴趣就是这个著名的独特事实。
如果要使用字符串值,请使用字符串值,但是sql server中允许生成新值的内置函数是NEWID和NEWSEQUENTIALID,这提供了UNIQUEIDENTIFIERs。
您没有必要对标识列使用UNIQUEIDENTIFIER,这取决于您的数据模型和服务器:如果只有一个数据库服务器生成密钥,那么序列ID就可以了,并且效率更高(而且容易阅读得多) ),而不是GUID。如果多个服务器生成密钥,则使用GUID
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句