症状
假设您使用 NEWSEQUENTIALID () 函数为 Linux 上的 SQL Server 2017 中的表生成唯一的 GUID。 重启SQL Server后,NEWSEQUENTIALID () 函数可能会生成一个 GUID,该 GUID 与此函数生成的之前 GUID 重复。
详细信息
Linux 上的 SQL Server 将顺序 UUID 种子存储在 /var/opt/mssql/.system/instance_id 中,并在启动期间递增。 备份 instance_id 文件以防系统故障。 如果文件丢失,则种子丢失,然后重新生成新种子。 初始种子生成基于随机位模式和 UUID,以避免冲突。 但是,必须按顺序排序的新种子在种子丢失后可能无法按顺序排序。
解决方法
此问题已在 SQL Server 的累积更新中进行了修复:
关于 SQL Server 的累积更新:
SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
参考资料
了解 Microsoft 用于描述软件更新的术语。