web-dev-qa-db-ja.com

Microsoft SQL Server 2008 R2のインデックスの自動インクリメント

SQL Server 2008 R2で新しいテーブルを作成しましたが、インデックスが自動インクリメントされていることを望みます。どうやってするか? IDデータ型はありません。私はintを選択しました

16
Magnetic_dud

SQL Serverでは、これは別個のデータ型( "autoincrement")ではありませんが、canINT列をIDENTITYとして定義します。

テーブルをどのように作成していますか-ビジュアルデザイナーまたはT-SQLスクリプト?

T-SQLでは、以下を使用します。

CREATE TABLE dbo.MyTable(ID INT IDENTITY(1,1) ......

ビジュアルテーブルデザイナーでは、次のことを確認する必要があります。

alt text

これは、タイプINTの列のオプションです。シード(開始値)と増分を定義できます。通常、どちらも1に設定されています。

57
marc_s

あなたのテーブル定義がこのようなものであれば、

....,
@id int,
....

に変更し、

....
@id int identity(1,1),
....

これにより、IDが1で始まるID列が作成され、テーブルの各レコードが挿入されるたびに、ID列が1つずつ増加します(つまり、ステップ)。