オートナンバーと識別子列

各テーブルには、テーブル内の各行を一意に識別する連続した値を格納する識別子列を 1 つ作成できます。この連続した値はシステムにより生成されます。たとえば、識別子列で、行がテーブルに挿入されたときに、そのアプリケーションで使用する一意の顧客領収書番号を自動生成することができます。通常、識別子列には、識別子列が定義されたテーブル内で一意の値が格納されます。つまり、識別子列を含むテーブルには、別のテーブルで使用されている同じ識別子の値が格納されることがあります。ただし、識別子の値は通常 1 つのテーブルのコンテキスト内でのみ使用され、あるテーブルの識別子列と他のテーブルの識別子列が関連付けられることはないため、問題は起こりません。

各テーブルには、全世界のすべてのネットワーク コンピュータに対して一意な値を格納するグローバル一意識別子列を 1 つ作成できます。グローバルに一意な値が格納される列は、複数のデータベース システムの類似したデータをマージする場合に便利です。たとえば、世界各国の子会社でデータを保有している請求書作成システムなどで役立ちます。統合やレポートを作成するためにデータを中央のサイトにマージするとき、グローバルに一意な値を使用すれば、異なる国や地域の顧客に同じ請求書番号や顧客 ID が割り当てられるのを防ぐことができます。

SQL Server では、更新サブスクリプションを伴うマージ レプリケーションやトランザクション レプリケーションに GUID 列を使用して、テーブルの複数のコピー間で行の一意性を確保しています。