文档详情

sqlserver中有关标识字段的两种方法.doc

发布:2017-05-28约1.08千字共3页下载文档
文本预览下载声明
int(或bigint)+标识列(又称自动增长字段) uniqueidentifier(又称Guid、UUID) ? ? ? ? (1)设计表时:列属性—标识规范—是标识(选择是) 用标识列实现字段自增可以避免并发等问题(两个人同时插入数据出错现象),不要开发人员控制自增。 用标识列的字段在Insert的时候不用指定主键的值。将字段的“是标识列”设置为“是”,一个表只能有一个标识列。 ? ? 当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改,如果强行更改会出现以下提示:不允许保存更改。 您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。 如果要去掉此提示,可从“工具”菜单中选择“选项”,在“选项”对话框中,选择Designers,选择“表设计器和数据库设计器”,清除“ 阻止保存要求重新创建表的更改”复选框。 ? 工具—选项—designers—阻止保存要求重新创建表的更改 ? ? ? ? (2) Guid算法是一种可以产生唯一标识的高效算法,它使用网卡MAC、地址、纳秒级时间、芯片ID码等算出来的,这样保证每次生成的GUID永远不会重复,无论是同一个计算机上还是不同的计算机。 ? SQLServer中生成GUID的函数newid(),即在新建查询里输入select? newid() ? ? .Net中生成Guid的方法:Guid.NewGuid(),返回是GUID的类型 GUID? id=GUID.newGuid(); Console.writeLine(id); Console.readKey(); ? ? 程序—Microsoft? windows? SDK? V6.0A—tools—GUID生成器 ? ? ??????? GUID显示数据顺序和插入数据顺序不一定一致。排列按GUID顺序。 ? ? Guid类型主键的默认值设定为newid()就会自动生成,很少这么干。 ???? 数据类型为uniqueidentifier的列设值默认值为newid()。插入其他列数据后,右键—执行SQL(X)就会自动填充uniqueidentifier列的数据。 ? ? ? (*)Int自增字段的优点:占用空间小、无需开发人员干预、易读;缺点:效率低;数据导入导出的时候很痛苦。 (*)Guid的优点:效率高、数据导入导出方便;缺点占用空间大、不易读。 业界主流倾向于使用Guid。
显示全部
相似文档