全局唯一标识符(GUID,Globally Unique Identifier)是一种由特定算法生成的二进制长度为128位的数字标识符。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2^128(3.4×10^38)个,所以随机生成两个相同GUID的可能性非常非常非常小,但并不为0,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。GUID字符串形式格式是“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中x表示0-9或a-z中的任意字符,例如5ff62d65-492f-4b30-81b4-d0c23a4560dd就是一GUID字符串。

C#生成GUID(默认小写):

//生成新guid
Guid guid1 = Guid.NewGuid();
Console.WriteLine(guid1.ToString());//利用guid字符串构造出guid
Guid guid2 = new Guid(guid1.ToString());
Console.WriteLine(guid2.ToString());Console.ReadLine();

Sql Server生成GUID(默认大写):

select NEWID() //对应的数据库表字段类型是uniqueidentifier

相比于Int或Long类型的主键标识而言,用GUID作为记录的唯一主键标识不容易记忆、没有规律、没有顺序,存储长度较大、索引时间较慢。不过从整体来看,用GUID作为对象的唯一标识还是优于传统的Int或Long类型的自增主键。首先,GUID值在任何一个有限的时空尺度内几乎可以认为用不完、不重复;其次,新增记录时可以提前获取作为主键的GUID值,减少一次数据库交互操作,而如果以传统的Int或Long类型的字段作为自增主键,那么新增一条记录前必须执行一次数据库插入操作以获取这个最新的自增主键;再次,用GUID作为记录的唯一标识具有数据可移植性,可以认为GUID值是跨表、跨数据库、跨系统的,而传统的Int或Long类型的自增主键则只能限定在某一特定系统、某一特定数据库的某一特定表中。

转载于:https://www.cnblogs.com/Arlar/p/7350516.html

GUID基本概念以及C#、SqlServer中GUID基本用法相关推荐

  1. sqlserver中GUID的默认值设置

    sqlserver中GUID的默认值设置 YID uniqueidentifier not null default (NEWSEQUENTIALID()), //有序GUID(只能用于表设计的时候的 ...

  2. 数据库 SQLServer中GUID用法介绍

    数据库 SQLServer中GUID用法介绍 1.NEWID用法 NEWID()作用是生成无顺序的GUID字符串.用法如下: SELECT NEWID() --生成36位的GUID SELECT RE ...

  3. SQLSERVER中的WITH用法

    SQLSERVER中的WITH用法 1.with的作用 相当于一个虚拟试图,说白了就是子查询部分 将SQL中重复使用的语句放在with as里面,后面你想用时就可以使用它 起到对大批量语句的优化作用 ...

  4. 数据库:SQLServer中GUID用法介绍

    今天给大家分享一下SQLServer中生成GUID的用法. 一.NEWID用法 NEWID()作用是生成无顺序的GUID字符串.用法如下: SELECT NEWID() --生成36位的GUIDSEL ...

  5. sqlserver中的常见函数用法

    今日碰到个问题:要实现数据表中的一个字段中的文本为"xxx.gif"的转换为"xxx.jpg",我不知道其具体名称,只知道是以gif结尾. 问题解决:updat ...

  6. SQLServer中Case的用法

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> CASE 可能是 SQL ...

  7. sqlserver中dateadd函数用法

    dateadd()函数在日期中添加或者减去指定的时间间隔 DATEADD(datepart,number,date) date 参数是合法的日期表达式.number 是您希望添加的间隔数:对于未来的时 ...

  8. 微软的COM中GUID和UUID、CLSID、IID

    摘自:http://blog.csdn.net/zhongguoren666/article/details/6711396 当初微软设计com规范的时候,有两种选择来保证用户的设计的com组件可以全 ...

  9. C#中Guid.ToString (String)五种格式,以及将32位的GUID转为16位及其他格式

    注意:本内容来自:C#中Guid.ToString Method (String)五种格式,以及将将32位的GUID转为16位及其他格式 一.生成各种格式的32位GUID  System.Guid.N ...

最新文章

  1. 厉害了,程序员的高考试卷,你能拿几分?
  2. 测量一组平行线的质量和频率m=n+1
  3. 排优解难 网上邻居常遇故障解决方法
  4. java小数强制转换,Java中的强制类型转换 大数转小数
  5. [渝粤教育] 广东-国家-开放大学 21秋期末考试马克思主义基本原理概论(A)10882k1 (5)
  6. 很好的理解遗传算法的样例
  7. 迁移学习:迈向真正的人工智能
  8. 心爱SEO博客开通了请光临百度
  9. nw.js桌面软件开发系列 第0.1节 HTML5和桌面软件开发的碰撞
  10. M1 Repast Simphony打不开 无反应问题解决
  11. 阻击 瑞星 和 雅虎助手 的 SVOHOST.exe(第2版)
  12. 高数 | 【多元函数微分学】如何判断二元微分式是否为全微分
  13. 信息窃取器概述:如何从浏览器窃取百万数据
  14. jmeter伪造ip进行压测(伪造大量ip,测试负载均衡)
  15. C语言:输入一个不多于5位的正整数,要求1:求出它是几位数; 要求2:分别打印出每一位数; 要求3:按逆序打印出各位数字;
  16. 驾校机器人教练售价_驾校机器人教练温柔鼓励!网友:好怕它被我气死
  17. 汉诺塔问题及最长数组子串问题源码
  18. 女神是麦当娜男神是小沈阳
  19. Android代码动态设置圆角,颜色,线条背景
  20. 算法补完计划(五) 二分图匹配

热门文章

  1. java quartz JobBuilder
  2. Node.js package.json
  3. jinja Template
  4. javascript document cookie
  5. Python Logging Formatter
  6. TensorFlow AlexNet
  7. py2neo match
  8. 给机器人罗宾写一封英语回信_近10年高考英语书面表达真题及范文大汇总! 把握高考命题新趋势!...
  9. php中如何滚动文字,HTML_网页HTML代码:滚动文字的制作,制作滚动文字 通过本章前面 - phpStudy...
  10. 6点叫醒全员的腾讯是枕戈待旦,还是如李彦宏说的“新瓶装旧酒”