SQLServer生成22位唯一码/FID(并发可用)

生成22位唯一码/FID(并发可用)
-- ================================================
/*
  用途:生成新的主键FID 
  作者:生成22位唯一的数字 并发可用
*/
-- ================================================
ALTER FUNCTION [dbo].[ufn_GenerateUniqueID]
(@LengthNo int = 22, @RandomNum int = 0)
RETURNS varchar(30)
WITH EXEC AS CALLER
AS
BEGIN
-- 返回值
  DECLARE @RetValue VARCHAR(50)
  declare @DatetimeString varchar(14)
  declare @randomString varchar(50)
  
  Select @DatetimeString = convert(varchar(8), getdate(), 112) + replace(convert(varchar(8), getdate(), 114), ':','')
  set @randomString = Right(Replicate('0',@LengthNo - 14) + cast(@RandomNum as varchar(10)), @LengthNo - 14)
  
  set @RetValue = @DatetimeString + @randomString
  
  -- 返回
  RETURN @RetValue
END
        /// <summary>
        /// 生成22位唯一的数字 并发可用
        /// </summary>
        /// <returns></returns>
        public static string GenerateUniqueID()
        {
            System.Threading.Thread.Sleep(1); //保证yyyyMMddHHmmssffff唯一
            Random d = new Random(BitConverter.ToInt32(Guid.NewGuid().ToByteArray(), 0));
            string strUnique = DateTime.Now.ToString("yyyyMMddHHmmssffff") + d.Next(1000, 9999);
            return strUnique;
        }
   string FMainTraceCode=GenerateCode.GenerateUniqueID().ToString(); 生成22位唯一码

 

posted @ 2022-03-01 21:14  大木瓜  阅读(261)  评论(0编辑  收藏  举报