列の ID プロパティを変更する方法 (Visual Database Tools)
テーブルに新しいレコードを追加したときに自動的に生成され、その列に格納される連続番号を再定義する場合は、列の ID プロパティを変更します。ID プロパティは、テーブルごとに 1 つの列にだけ設定できます。
ID プロパティを持つ列には、システムによって生成される連続した値が含まれます。この値は、テーブル内の各行を一意に識別します (従業員の識別番号など)。ID 列のあるテーブルに値を挿入すると、Microsoft SQL Server は、最後に使用された ID 値 ("IDENTITY シード" プロパティ) および列の作成時に指定された増分値 ("IDENTITY インクリメント" プロパティ) に基づいて、次の ID を自動的に生成します。
注 |
---|
ID プロパティを設定できるのは、NULL 値が許可されていない decimal、int、numeric、smallint、bigint、または tinyint データ型の列に対してのみです。 |
列の ID プロパティを変更するには
オブジェクト エクスプローラで、有効桁数を変更する列が含まれているテーブルを右クリックし、[デザイン] をクリックします。
テーブル デザイナにテーブルが表示されます。
変更する列の [Null を許容] チェック ボックスをオフにします。
[列のプロパティ] タブの [IDENTITY の指定] プロパティを展開します。
[Is Identity] 子プロパティのグリッド セルをクリックし、ドロップダウン リストの [はい] をクリックします。
注 ID 列がテーブルに既に存在する場合、別の列で [Is Identity] プロパティを設定すると、元の列のこのプロパティが [いいえ] にリセットされます。その際、警告は表示されません。
[IDENTITY シード] セルに値を入力します。この値は、テーブルの最初の行に割り当てられます。既定では値 1 が割り当てられます。
[IDENTITY インクリメント] セルに値を入力します。この値は、2 行目以降の各行に対して [IDENTITY シード] に加算される増分値です。既定では値 1 が割り当てられます。
たとえば、orders テーブルに追加される各行に対して、10000 から始まり 10 ずつ増える 5 桁の注文 ID を自動的に生成する場合を考えます。この場合は、[IDENTITY シード] に 10000 を入力して [IDENTITY インクリメント] に 10 を入力します。
テーブルの ID プロパティを変更しても、既存の ID 値は保持されます。新しい設定が適用されるのは、テーブルに新しく追加される行だけです。
注 |
---|
ID 列があるテーブルで頻繁に削除が行われると、ID 値と ID 値の間に間隔が生じることがあります。間隔が生じると問題がある場合は、ID プロパティを使用しないでください。 |
グリッド セルの外部をクリックするか、Tab キーを使用して別のグリッド セルに移動すると、[IDENTITY の指定] プロパティの新しい値がテーブル デザイナの列に割り当てられます。テーブル デザイナで変更を保存すると、値がデータベースに反映されます。