private string GenerateStringID()
{
long i = 1;
foreach (byte b in Guid.NewGuid().ToByteArray())
{
i *= ((int)b + 1);
}
return string.Format("{0:x}", i - DateTime.Now.Ticks);
}
以上方法是在C#里格式化GUID,可以输出16位保证不重复。网上查来的。
现在问题是:如何在数据库[存储过程]生成GUID并且格式化为16位(横杠去掉),并且不重复,有算法吗?
--?
select replace(ltrim(newid()),'-','')
select left(replace(ltrim(newid()),'-',''),16)
select right(replace(ltrim(newid()),'-',''),16)
--可能会重复,即使不直接用newid,也可能重复,只是机率大小问题
其实LZ可以用年月日小时分钟微秒再加个随机数来实现,不一定要用GUID
http://www.cnblogs.com/About690878778/archive/2011/04/19/2020782.html