sqlserver:关于uniqueidentifier类型

79 篇文章 10 订阅

环境:

  • window10
  • sqlserver2014
  • vs2022
  • .net core 3.1

参考:

微软文档:niqueidentifier (Transact-SQL)

根据微软解释,这是一个16 字节(即:128bit位) 的GUID。
所以它本质还是二进制数据,和c#中的guid是一个意思,只不过我们平时以字符串的形式观察它。

关于c#中guid和string的转换,参考:《c#:guid和string互转 &guid不区分大小写》

在sqlserver中可以通过:NEWID()NEWSEQUENTIALID()生成guid,只不过,NEWSEQUENTIALID()是为create/alter table 的列类型default准备的,如:

create table test4(
	id int identity,
	name varchar(50),
	guid uniqueidentifier default(NEWSEQUENTIALID())
)
--插入数据
insert into test4(name) values('小明'),('小红')
insert into test4(name,guid) values('小蓝',NEWID())
insert into test4(name,guid) values('小刚','a66cc049-edee-426d-9aa2-dea498149b8d')
insert into test4(name,guid) values('小刚','{a66cc049-edee-426d-9aa2-dea498149b8d}')
-- 查询数据

在这里插入图片描述
在c#中,我们可以直接使用 guid? 接受ado.net 的返回值,因为ado.net 读取时就已经解析成guid了。

最后,GUID本身是二进制数据(128个bit位),并不存在大小写问题!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jackletter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值