代码改变世界

C#生成Guid,SqlServer生成Guid

2017-05-04 17:02  我的小小熊  阅读(12295)  评论(0编辑  收藏  举报

工作中需要用到全球唯一标识符,在.net当中 微软已经为我们添加了此方法,我们只需要直接调用即可。代码如下:

string guid = Guid.NewGuid().ToString();

但事情往往没有那么容易一帆风顺,当别人设计的数据库ID类型为varchar(32)时,使用Guid.NewGuid().ToString()自动生成ID值,本来大小32位妥妥的。可C#在生成的ID值中自动生成了几根小横杠,你说是不是讨嫌。这时往数据库添加数据时就报错了。前几天工作中刚刚遇到的问题。那怎么把自动生成的小横杠去掉呢?方法很简单:

string guid = Guid.NewGuid().ToString("N");

 

Sqlserver中需要生成Guid也很方便:

  select NEWID();

需要跟C#中生成的Guid配套的话,还需要加点工,因为在Sqlserver中生成的Guid字母为大写,而且也有小横杠:

select LOWER(REPLACE(NEWID(),'-',''))

使用 REPLACE()去掉小横杠并使用 LOWER()转换为小写,OK。