SQL Server LocalDB でテーブルの列を自動インクリメント列に設定する - SQL Server

SQL Server LocalDB でテーブルの列を自動インクリメント列に設定する手順を紹介します。

手順

SQL Server LocalDB でテーブルを作成します。下図のテーブルエディタが表示されます。


列名や型を設定します。



自動で採番しインクリメントする列に設定する場合は、列に "IDENTITY" を記述します。
IDENTITYの書式は以下となります。
IDENTITY 
または
IDENTITY (seed , increment)
seedは自動裁判の開始番号、increment は加算値です。 以下の記述では、1から採番され1づつ増加します。IDENTITY のみを記述した場合は、IDENTITY (1,1)の動作になります。
IDENTITY (1,1)

テーブルデザイナの下部に表示されている、SQL文を編集します。[Id]列に IDENTITY(1,1) の追記と、テーブル名を作成したいテーブル名に変更しています。
変更前SQL
CREATE TABLE [dbo].[MyTable]
(
    [Id] INT NOT NULL PRIMARY KEY, 
    [name] NCHAR(64) NULL, 
    [height] DECIMAL(18, 2) NULL, 
    [weight] DECIMAL(18, 2) NULL
)


変更後SQL
CREATE TABLE [dbo].[MyTable]
(
    [Id] INT IDENTITY(1,1) NOT NULL PRIMARY KEY, 
    [name] NCHAR(64) NULL, 
    [height] DECIMAL(18, 2) NULL, 
    [weight] DECIMAL(18, 2) NULL
)


別の手順として、テーブルデザイナで列を選択し、画面右下のプロパティウィンドウの"IDENTITY"の項目を変更する方法もあります。
テーブル作成画面を表示します。


テーブルデザイナのID列を選択します。


プロパティウィンドウの[IDENTITYの指定]の項目の[(IDである)]の値をFalseからTrueに変更します。



プロパティの値を変更すると、SQLにもIDENTITYのキーワードが追加されます。
ウィンドウ上部の[更新]ボタンをクリックし、テーブルを作成します。


テーブルが作成されました。サーバーエクスプローラーの[データ接続]ノード内のデータベースのノードの[テーブル]ノードに作成したテーブルの項目が追加されています。

動作確認: レコードの入力

テーブルにレコードの値を入力します。
サーバーエクスプローラーのテーブルの項目を選択し、右クリックしポップアップメニューの[テーブル データの表示]の項目をクリックします。


テーブルのデータが表示されます。作成直後のため空状態です。


name, height, weight の値を入力します。


入力を確定します。Idが自動採番されて設定される動作が確認できます。


2件目のレコードも入力します。


Idを入力せずに入力内容を確定すると、Idが自動採番されます。


SQL Server LocalDBで自動インクリメントする列を持つテーブルを作成できました。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2022-11-22
改訂日: 2022-11-22
作成日: 2016-07-20
iPentec all rights reserverd.