zoukankan      html  css  js  c++  java
  • 根据SQL Server排序规则创建顺序GUID

     public static class GuidUtil
        {
            private static readonly long EpochMilliseconds = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Ticks / 10000L;
    
            /// <summary>
            /// Creates a sequential GUID according to SQL Server's ordering rules.
            /// </summary>
            public static Guid NewSequentialId()
            {
                // This code was not reviewed to guarantee uniqueness under most conditions, nor completely optimize for avoiding
                // page splits in SQL Server when doing inserts from multiple hosts, so do not re-use in production systems.
                var guidBytes = Guid.NewGuid().ToByteArray();
    
                // get the milliseconds since Jan 1 1970
                byte[] sequential = BitConverter.GetBytes((DateTime.Now.Ticks / 10000L) - EpochMilliseconds);
    
                // discard the 2 most significant bytes, as we only care about the milliseconds increasing, but the highest ones 
                // should be 0 for several thousand years to come (non-issue).
                if (BitConverter.IsLittleEndian)
                {
                    guidBytes[10] = sequential[5];
                    guidBytes[11] = sequential[4];
                    guidBytes[12] = sequential[3];
                    guidBytes[13] = sequential[2];
                    guidBytes[14] = sequential[1];
                    guidBytes[15] = sequential[0];
                }
                else
                {
                    Buffer.BlockCopy(sequential, 2, guidBytes, 10, 6);
                }
    
                return new Guid(guidBytes);
            }
        }
  • 相关阅读:
    Linux 使用 github 常用命令
    配置使用 git 秘钥连接 GitHub
    Python 使用 face_recognition 人脸识别
    face_recognition 基础接口
    pycharm 安装激活操作
    Python 人工智能之人脸识别 face_recognition 模块安装
    Linux pip 命令无法使用问题
    vue 起步
    vue.JS 介绍
    AngularJS 简介
  • 原文地址:https://www.cnblogs.com/mycing/p/6063775.html
Copyright © 2011-2022 走看看