日期:2014-05-17  浏览次数:20537 次

SqlServer生成Guid如何格式化,在线求解~~
C# code

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位(横杠去掉),并且不重复,有算法吗?

------解决方案--------------------
探讨
引用:

SQL code

select left(replace(ltrim(newid()),'-',''),16)
select right(replace(ltrim(newid()),'-',''),16)
--可能会重复,即使不直接用newid,也可能重复,只是机率大小问题


这个ltrim函数是?

------解决方案--------------------
http://blog.csdn.net/wenhuijoe/article/details/5317430
http://www.cnblogs.com/About690878778/archive/2011/04/19/2020782.html