数据库里字段是uniqueidentifier类型的,怎么操作。

bzhyan 2010-06-17 10:25:54
数据库里字段是uniqueidentifier类型的,我用的是Telerik Grid自动生成增、删、改。
ID是uniqueidentifier类型的自动生成的,因为是自动增加的没有代码。所以无法控制ID列,
添加后他生成的是ID是00000000-0000-0000-0000-00000000000,应为ID是唯一的,所以第二次添加的时候就会出错。
大家帮看一下!!!谢谢!!
...全文
1262 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjc_333 2010-11-05
  • 打赏
  • 举报
回复
原来是这样子 的哦,呵呵。。。
bzhyan 2010-06-21
  • 打赏
  • 举报
回复
在顶一下!!!!!!!!
danyaozhuanjia 2010-06-18
  • 打赏
  • 举报
回复
primary key,自动增长,不错才怪,我想知道,你是做什么效果把自动增长做为主键。
解决方案:没做一次增加操作,就做一次删除操作,即可,麻烦吧。

bzhyan 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 chen_ya_ping 的回复:]
引用楼主 tiger00598 的回复:
数据库里字段是uniqueidentifier类型的,我用的是Telerik Grid自动生成增、删、改。
ID是uniqueidentifier类型的自动生成的,因为是自动增加的没有代码。所以无法控制ID列,
添加后他生成的是ID是00000000-0000-0000-0000-00000000000,应为ID是唯一的,所以第二次添加的时候就会出错……
[/Quote]
我用的是自动生成增删改,没有代码,guid.newguid()不知道写在哪啊!!!
这样写是可以的但是不知道写在哪!!
chen_ya_ping 2010-06-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 tiger00598 的回复:]
数据库里字段是uniqueidentifier类型的,我用的是Telerik Grid自动生成增、删、改。
ID是uniqueidentifier类型的自动生成的,因为是自动增加的没有代码。所以无法控制ID列,
添加后他生成的是ID是00000000-0000-0000-0000-00000000000,应为ID是唯一的,所以第二次添加的时候就会出错。
大家帮看一下!!!谢谢!!
[/Quote]
guid.newguid()什么的。
bzhyan 2010-06-18
  • 打赏
  • 举报
回复
关键是怎样让他不生成重复的ID ,应该每次生成不同的ID但是他每次生成的都是00000000-0000-0000-0000-00000000000,其实这就是我的问题。
永生天地 2010-06-17
  • 打赏
  • 举报
回复
第二次怎么出错,出了什么错
bzhyan 2010-06-17
  • 打赏
  • 举报
回复
期待。。。。。。。。。。。。。。。。。。
wosizy 2010-06-17
  • 打赏
  • 举报
回复
bzhyan 2010-06-17
  • 打赏
  • 举报
回复
谢谢大家的回答。
bzhyan 2010-06-17
  • 打赏
  • 举报
回复
大家好,请大家看清我的问题:我用的是Telerik Grid自动生成增、删、改
bancxc 2010-06-17
  • 打赏
  • 举报
回复
insert into tb(a,b,c)
select 'a','b',newid()
bancxc 2010-06-17
  • 打赏
  • 举报
回复
select newid()
捷哥1999 2010-06-17
  • 打赏
  • 举报
回复
使用NEWID( )函数!
可以生成一个唯一的UniqueIdentifie
JiuchunYoung 2010-06-17
  • 打赏
  • 举报
回复
SQL Server为我们提供了UniqueIdentifier数据类型,并提供了一个生成函数NEWID( ),使用NEWID( )可以生成一个唯一的UniqueIdentifier。UniqueIdentifier在数据库中占用16个字节,出现重复的概率非常小,以至于可以认为是0。我们经常从注册表中看到类似

{45F0EB02-0727-4F2E-AAB5-E8AEDEE0CEC5}

的东西实际上就是一个UniqueIdentifier,Windows用它来做COM组件以及接口的标识,防止出现重复。在.NET里管UniqueIdentifier称之为GUID(Global Unique Identifier)。在C#中可以使用如下命令生成一个GUID:


Guid u = System.Guid.NewGuid();
对于上面提到的Order与OrderDetail的程序,如果选用UniqueIdentifier作为主键的话,我们完全可以避免上面提到的增加网络RoundTrip的问题。通过程序直接生成GUID填充主键,不用考虑是否会出现重复。

UniqueIdentifier字段也存在严重的缺陷:首先,它的长度是16字节,是整数的4倍长,会占用大量存储空间。更为严重的是,UniqueIdentifier的生成毫无规律可言,要想在上面建立索引(绝大多数数据库在主键上都有索引)是一个非常耗时的操作。有人做过实验,插入同样的数据量,使用UniqueIdentifier型数据做主键要比使用Integer型数据慢,所以,出于效率考虑,尽可能避免使用UniqueIdentifier型数据库作为主键键值。

bzhyan 2010-06-17
  • 打赏
  • 举报
回复
我的数据库是sql08的
jiezi316 2010-06-17
  • 打赏
  • 举报
回复
默认值设置为 newid()
?
有点记不清了。
caiyang910423 2010-06-17
  • 打赏
  • 举报
回复
你那个ID是唯一的,第二次再插入一个一样的当然会出错,要就是生成一个唯一插入进去,要就是自定义一个规则插入进去,保存不一样,不就行了
bzhyan 2010-06-17
  • 打赏
  • 举报
回复
应为第一次自动添加的是00000000-0000-0000-0000-00000000000这个值,第二次添加的还是00000000-0000-0000-0000-00000000000这个值因为Id是唯一的所以肯定会出错。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧