sql >> データベース >  >> RDS >> Sqlserver

SQL Server:NEWID()は常に一意のIDを提供しますか?

    両方の NEWID() および NEWSEQUENTIALID() タイプ<のグローバルに一意の値を指定しますcode> uniqueidentifier 。

    NEWID() ランダムなアクティビティが含まれるため、次の値は予測できず、実行に時間がかかります。

    NEWSEQUENTIALID() ランダムなアクティビティを伴わないため、次に生成される値を予測できます (簡単ではありません!)そして NEWID()よりも速く実行されます 。

    したがって、(セキュリティ上の理由から)予測される次の値について心配しない場合は、 NEWSEQUENTIALID()を使用できます。 。予測可能性が心配な場合、またはパフォーマンスのわずかなペナルティを気にしない場合は、 NEWID()を使用できます。 。

    ただし、厳密な意味では、異なるマシンによって生成されたGUIDが同じ値を持つ可能性はごくわずかです。実際には、それは不可能であると考えられています。

    さらに詳しい情報が必要な場合は、次をお読みください: GUIDを生成するためのどの方法が、GUIDが本当に一意であることを確認するのに最適ですか?

    NEWID()に注意してください RFC4122 に準拠しています 。もう1つの関数は、Microsoftのアルゴリズムを使用して値を生成します。



    1. プラグ可能なデータベースの名前を変更する

    2. 各グループの上位3つの値を選択します

    3. タイムスタンプではなくDateTimeを選択したのはいつですか

    4. SQLは、別のテーブルの別の列から1つの列を更新します