关于数据库插入的问题 系统设计是这样的,在新插入一条数据的时候 先查找数据库中某一字段的数值,在此基础上+1,如:当插入的时候查到数据库某一字段的数值是333001,那么插入的这条数据此字段的数值就是333002,但是此会造成一个问题,当两个用户同时插入的时候 就可能会产生2条333002。如何解决这个问题。备注:不能使用自增长。不使用随机数,随机数会导致数值无规律。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 插入数据的时候先生成一个自加一的ID,再通过ID分配你要的流水账号 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(); 每次插入前lock住表,先检查id是否已经存在,如果存在,+1,如果还存在,继续+1直到不存在插入完成以后释放锁。这个用存储过程很容易实现。这样可确保唯一性,但是锁表的时候,如果插入动作很频繁,可能会导致性能上的一些损失。 在数据库的字段上加上UNIQUE 如果执行失败 让他再加1 C# 操作 PDF 相关问题。。。。。(C#)PDF xp系统的bug excel导出1/8成1月8号 小弟恳求在 VS2003里面实现一个功能~~~~~~~~~~~急.在线等!!! c# 读取excel 单元格内容被截断 各位大哥,就急啊 在ASP.NET下如何发送邮件,要怎么去配置SMTP呢? 过来看看吧!用我所有的分了......................... 怎么实现按回车键跳到下一输入点? Sql和Oracle中的Sql语句的问题,急~~~~ 无法找到C#命名空间? 大家怎么行列显示呀 程序写到这里蒙了。如何控制几行几列读取数据
Guid u = System.Guid.NewGuid();
插入完成以后释放锁。这个用存储过程很容易实现。
这样可确保唯一性,但是锁表的时候,如果插入动作很频繁,可能会导致性能上的一些损失。