web-dev-qa-db-ja.com

SQLテーブルの主キーの自動インクリメント

Sql Express Management Studio 2008 GUI(コーディングなし)を使用して、主キーを自動インクリメントするにはどうすればよいですか?

説明してみましょう。「id」という名前の列を持つテーブルがあり、この列のアイテムは主キーに設定されています。この列を自動インクリメントしたいのですが、どうすればいいですか?

乾杯

56
samsam114
  1. おそらく、あなたはテーブルの設計に携わっているでしょう。そうでない場合:テーブル名を右クリックします-"Design"。
  2. 必要な列をクリックします。
  3. 列のプロパティ」(下部)で、「Identity Specification」セクションまでスクロールして展開し、「(Is Identity) = "から" はい "。

enter image description here

106
Chris Diver

以下はGUIで行う方法ではありませんが、IDENTITYデータ型(start、increment)を使用するだけで自動インクリメントを取得できます。

CREATE TABLE "dbo"."TableName"
(
   id int IDENTITY(1,1) PRIMARY KEY NOT NULL,
   name varchar(20),
);

insertステートメントは、id列を除くすべての列をリストする必要があります(自動インクリメントされた値で埋められます)。

INSERT INTO "dbo"."TableName" (name) VALUES ('alpha');
INSERT INTO "dbo"."TableName" (name) VALUES ('beta');

との結果

SELECT id, name FROM "dbo"."TableName";

なります

id    name
--------------------------
1     alpha
2     beta
10
andrej

SSMSのテーブルを右クリックし、「設計」して、id列をクリックします。プロパティで、@にシードされるIDを設定します。 1および1の増分-保存して完了です。

10
Will A

以下の回答に従って変更された後も保存できないという問題を抱えている人のために、以下を実行してください:

ツール->オプション->デザイナー->テーブルおよびデータベースデザイナー->「テーブルの再作成が必要な変更を保存しないようにする」ボックスのチェックを外して-> OK

そして今それが機能するはずなので保存してみてください

6
mazenchami

このマシンにはExpress Management Studioがないため、メモリに基づいて処理します。列を「IDENTITY」として設定する必要があると思います。プロパティの下に[+]を展開して、自動インクリメントをtrueに設定できる必要があります。

6
Cambium

このような定義段階でそれを行う方法があると思います

create table employee(id int identity、name varchar(50)、primary key(id))..既存のテーブルを変更し、理論的には見えないIDとして列を作成する方法があるかどうかを確認しようとしています(既存の値を変更する必要がある可能性があるため)

0
user1588737