次の方法で共有


列の ID プロパティを変更する方法 (Visual Database Tools)

更新 : 2006 年 12 月 12 日

テーブルに新しいレコードを追加したときに自動的に生成され、その列に格納される連続番号を再定義する場合は、列の ID プロパティを変更します。ID プロパティは、テーブルごとに 1 つの列にだけ設定できます。

ID プロパティを持つ列には、システムによって生成される連続した値が含まれます。この値は、テーブル内の各行を一意に識別します (従業員の識別番号など)。ID 列のあるテーブルに値を挿入すると、Microsoft SQL Server は、最後に使用された ID 値 ("IDENTITY シード" プロパティ) および列の作成時に指定された増分値 ("IDENTITY インクリメント" プロパティ) に基づいて、次の ID を自動的に生成します。

ms188665.note(ja-jp,SQL.90).gifメモ :
ID プロパティを設定できるのは、NULL 値が許可されていない decimalintnumericsmallintbigint、または tinyint データ型の列に対してのみです。

列の ID プロパティを変更するには

  1. オブジェクト エクスプローラで、ID プロパティを変更する列が含まれているテーブルを右クリックし、[デザイン] (SP1 以前の場合は [変更]) をクリックします。

    テーブル デザイナにテーブルが表示されます。

  2. 変更する列の [Null を許容] チェック ボックスをオフにします。

  3. [列のプロパティ] タブの [IDENTITY の指定] プロパティを展開します。

  4. [Is Identity] 子プロパティのグリッド セルをクリックし、ドロップダウン リストの [はい] をクリックします。

    ms188665.note(ja-jp,SQL.90).gifメモ :
    ID 列がテーブルに既に存在する場合、別の列で [Is Identity] プロパティを設定すると、元の列のこのプロパティが [いいえ] にリセットされます。その際、警告は表示されません。
  5. [IDENTITY シード] セルに値を入力します。この値は、テーブルの最初の行に割り当てられます。既定では値 1 が割り当てられます。

  6. [IDENTITY インクリメント] セルに値を入力します。この値は、2 行目以降の各行に対して [IDENTITY シード] に加算される増分値です。既定では値 1 が割り当てられます。

たとえば、orders テーブルに追加される各行に対して、10000 から始まり 10 ずつ増える 5 桁の注文 ID を自動的に生成する場合を考えます。この場合は、[IDENTITY シード]10000 を入力して [IDENTITY インクリメント]10 を入力します。

テーブルの ID プロパティを変更しても、既存の ID 値は保持されます。新しい設定が適用されるのは、テーブルに新しく追加される行だけです。

ms188665.note(ja-jp,SQL.90).gifメモ :
ID 列があるテーブルで頻繁に削除が行われると、ID 値と ID 値の間に間隔が生じることがあります。間隔が生じると問題がある場合は、ID プロパティを使用しないでください。

グリッド セルの外部をクリックするか、Tab キーを使用して別のグリッド セルに移動すると、[IDENTITY の指定] プロパティの新しい値がテーブル デザイナの列に割り当てられます。テーブル デザイナで変更を保存すると、値がデータベースに反映されます。

参照

その他の技術情報

列の操作 (Visual Database Tools)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手