現象
NEWSEQUENTIALID() 関数を使用して、SQL Server 2017 on Linux のテーブルの一意の GUID を生成することを想定しています。 SQL Server を再起動した後、この関数によって生成された以前の GUID と重複した GUID が NEWSEQUENTIALID() 関数によって生成される場合があります。
追加情報
SQL Server on Linux は、連続した UUID シードを /var/opt/mssql/.system/instance_id に格納し、起動時にインクリメントします。 システム障害が発生した場合に備えて、 instance_id ファイルのバックアップを作成します。 ファイルが失われた場合、シードは失われ、新しいシードが再生成されます。 最初のシード生成は、ランダム ビット パターンと競合を避けるための UUID に基づいています。 ただし、順番に並べ替える必要がある新しいシードは、シードが失われた後は順番に並べ替えられない場合があります。
解決策
この問題は、SQL Server 用の次の累積的な更新プログラムで解決されています。
SQL Server 2017 の累積的な更新プログラム CU 38
SQL Server の累積的な更新プログラムについて:
SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。
SQL Server 2017 の最新の累積的な更新プログラム
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。