|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
这能找出所有错误的99.99%。它不能找出的是仅仅涉及数据文件的损坏(这很不常见)。如果你想要检查一张表,你通常应该没有选项地运行myisamchk或用-s或--silent选项的任何一个。数据|数据范例想要发生这类独一标识的格局的数据:
6F9619FF-8B86-D011-B42D-00C04FC964FF
应当怎样做呢?
================================================================
答:
uniqueidentifier数据范例可存储16字节的二进制值,其感化与全局独一标识符(GUID)一样。GUID是独一的二进制数;天下上的任何两台盘算机都不会天生反复的GUID值。GUID次要用于在具有多个节点、多台盘算机的收集中,分派必需具有独一性的标识符。
uniqueidentifier列的GUID值一般经由过程以下体例之一猎取:
在Transact-SQL语句、批处置或剧本中挪用NEWID函数。
在使用程序代码中,挪用前往GUID的使用程序API函数或办法。
Transact-SQLNEWID函数和使用程序API函数和办法用它们的网卡的标识号加上CPU时钟的独一编号来天生新的uniqueidentifier值。每一个网卡都有独一的标识号。NEWID前往的uniqueidentifier值是经由过程利用服务器上的网卡而天生的。使用程序API函数和办法前往的uniqueidentifier值是经由过程利用客户端中的网卡而天生的。
uniqueidentifier值一般不界说为常量。您能够按以下体例指定uniqueidentifier常量:
字符串格局:6F9619FF-8B86-D011-B42D-00C04FC964FF
二进制格局:0xff19966f868b11d0b42d00c04fc964ff
uniqueidentifier数据范例不会依照IDENTITY属性的体例为拔出的行主动天生新的ID。比方,若要猎取新的uniqueidentifier值,则表必需具有指定NEWID函数或NEWSEQUENTIALID函数的DEFAULT子句,或INSERT语句必需利用NEWID函数。
CREATETABLEMyUniqueTable
(UniqueColumnUNIQUEIDENTIFIERDEFAULTNEWID(),
CharactersVARCHAR(10))
GO
INSERTINTOMyUniqueTable(Characters)VALUES(uiok)
INSERTINTOMyUniqueTableVALUES(NEWID(),uiok)
GO
注重:
您可使用NEWSEQUENTIALID天生GUID以削减叶级别索引上的页争用。NEWSEQUENTIALID只能与uniqueidentifier范例的表列的DEFAULT束缚一同利用。
uniqueidentifier列中能够屡次呈现某个uniqueidentifier值,除非对该列也指定了UNIQUE或PRIMARYKEY束缚。当多个行援用源表中的统一个主键时,援用其他表中uniqueidentifier主键的外键列中能够屡次呈现各个uniqueidentifier值。
一个表能够有多个uniqueidentifier列。每一个表中能够指定一个具有ROWGUIDCOL属性的uniqueidentifier列。ROWGUIDCOL属性指明此列的uniqueidentifier值可独一地标识表中的行。可是,属性不会实行任何强迫完成独一性的操纵。必需利用其他机制强迫完成独一性,比方指定列的PRIMARYKEY束缚。ROWGUIDCOL属性次要用于MicrosoftSQLServer2005复制。具有更新定阅的兼并复制和事件复制利用uniqueidentifier列来确保在表的多个正本中独一地标识行。
uniqueidentifier数据范例具有以下弱点:
值长且难明。这利用户难以准确键进它们,而且更难记着。
这些值是随机的,并且它们不撑持任何使其对用户更成心义的形式。
也没有任何体例能够决意天生uniqueidentifier值的按次。它们不合用于那些依附递增的键值的现有使用程序。
当uniqueidentifier为16字节时,其数据范例比其他数据范例(比方4字节的整数)年夜。这意味着利用uniqueidentifier键天生索引的速率绝对慢于利用int键天生索引的速率。
在不请求全局独一性或首选利用顺次列增添的键时,请思索利用IDENTITY属性。
这能找出所有错误的99.99%。它不能找出的是仅仅涉及数据文件的损坏(这很不常见)。如果你想要检查一张表,你通常应该没有选项地运行myisamchk或用-s或--silent选项的任何一个。 |
|