sqlserver 如何生成一个字母加数字组合唯一的编号 编号是有规则的,如aa+5个数字。可能有多人并发插入数据,每条数据会有一列生成这个编号,请问大家都如何实现的,一定确保万无一失。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加的这个数字用一个全局的Cache记录条数,每次插入时,从Cache中获取上次记录的条数,然后将该值加上1,存入cache,等条数到99999时,自动变成0,前面的字母,建议用当前时间,这样绝对可以 主键列? 时间+max值一般情况下就可以了 我觉得字母+@@identity这种方法是可行的,但是还有个问题,我如何初始化@@identity,因为在一个事物中它第一次初始化时是null,我想初始化一个大点的数字。 建议楼主这样试试: 用表和存储过程来实现。 方法:(1)、建一个表,专门存放这个编号(可以把其他有这方面业务需求的表都放进来) 例 table_name curr_num (2)、写一个存储过程,通过事务,执行curr_num+1,然后返回curr_num 并将这个事务放在一个while 下,以便能在事务失败时实现多次执行。 写存储过程,带一个output参数(用于字母),里面就直接生成数字就行了,调用的时候直接传一个字母进去组合 给你生成序列号的那列数据类型uniqueidentifier默认newid()或者int设置成identity的都可以 declare @result char(5)if(@@identity is null) set @result = '00000'else set @result = right('00000' + str(@@identity), 5) C#? static class MyClass { static object objLock = new object(); static int value = 0; static string alph ="ABC......"; static string GetUniq() { lock (objLock) { digit++; return string.Format("{0}{1}{2:00000}",alph[value/100000/(26*26)], alph[((value/100000) % (26*26))/26 , value % 100000); } } } windows服务 不明原因停止 我在开发 visual studio 2005下使用的代码段编辑器,已经具有雏形。有需要的吗? 如何美化application界面? 软件授权方式的技术实现讨论 怎样获得图片对象?在线等!!! [请教]请问如何判断一个windows窗体是否已启动 WPF 中GridView如何实现动态添加列,每列可以绑定多个数据源 C#怎么开发玩转手机那样的软件 在C#里面大量执行 sql 的insert语句。 如何调用ini文件 0.00000024797628483952394怎么转成0.0000003 小数点后0不确定 Enterprise Library
方法:(1)、建一个表,专门存放这个编号(可以把其他有这方面业务需求的表都放进来)
例 table_name curr_num
(2)、写一个存储过程,通过事务,执行curr_num+1,然后返回curr_num
并将这个事务放在一个while 下,以便能在事务失败时实现多次执行。
declare @result char(5)
if(@@identity is null)
set @result = '00000'
else
set @result = right('00000' + str(@@identity), 5)
static class MyClass
{
static object objLock = new object();
static int value = 0;
static string alph ="ABC......";
static string GetUniq()
{
lock (objLock)
{
digit++;
return string.Format("{0}{1}{2:00000}",alph[value/100000/(26*26)], alph[((value/100000) % (26*26))/26 , value % 100000);
}
}
}