auto increment
データベーステーブルのprimary key
をSQL Server
にするにはどうすればよいですか。フォーラムを見てきましたが、方法がわかりません。
私はプロパティを見ましたが、オプションを見ることができません、私はあなたがIdentity
specificationプロパティに行って、それをyesに設定し、1にIdentity increment
を設定するという答えを見ました、しかしtいいえをyesに変更します。
これを行う簡単な方法があるはずですが、私はそれを見つけることができません。
Key列のデータ型がint
であることを確認してから、次の図に示すように手動でIDを設定します。
または このコードを実行する
-- ID is the name of the [to be] identity column
ALTER TABLE [yourTable] DROP COLUMN ID
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)
ID
がテーブル内の唯一の列ではない場合、コードが実行されます。
画像参照fifo -
テーブルを作成するときに、次のように IDENTITY
列を作成できます。
CREATE TABLE (
ID_column INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
...
);
IDENTITY
プロパティは、列を1から自動インクリメントします(列のデータ型は整数である必要があることに注意してください)。これを既存の列に追加する場合は、 ALTER TABLE
コマンドを使用します。
編集する
少しテストしましたが、さまざまなテーブルのColumn PropertiesウィンドウからIdentityプロパティを変更する方法が見つかりません。列を識別列にしたい場合は、ALTER TABLE
コマンドを使用する必要があります。
インクリメントとシードを公開するには、Identityセクションを拡張する必要があります。
編集:私はあなたがchar(10)ではなく、整数データ型を持っていると仮定しました。私がこの答えを投稿したときに私が言ったそして有効であることは合理的です
データベースを展開し、テーブルを展開してテーブルを右クリックし、ドロップダウンから design を選択します。
今行きなさい 列の特性 それの下でスクロールし、見つけなさい 識別仕様 、それを拡張すればあなたは見つける - 識別である それをはいにしなさい。そのすぐ下の Identity Increment を選択します。その中で増分する値を指定します。
おそらく何か足りないのですが、これがSEQUENCEオブジェクトで機能しないのはなぜですか?これはあなたが探しているものではありませんか?
例:
CREATE SCHEMA blah.
GO
CREATE SEQUENCE blah.blahsequence
START WITH 1
INCREMENT BY 1
NO CYCLE;
CREATE TABLE blah.de_blah_blah
(numbers bigint PRIMARY KEY NOT NULL
......etc
でシーケンスを参照するときにINSERTコマンドを言うだけで使用します。
NEXT VALUE FOR blah.blahsequence
_ sequence _ の詳細情報とオプション
Data Type:intを使用している場合は、自動インクリメントする行を選択して列プロパティタグに移動できます。そこであなたはアイデンティティを 'yes'に設定することができます。自動インクリメントの開始値もそこで編集できます。私が手伝ってくれることを願っています;)
私はすでにテーブルを作成したを持っていてテーブルを削除せずにそれを変更することができなかったのでこの問題を抱えていました。
オブジェクトエクスプローラでテーブルを右クリックします。
Script Table as > DROP And CREATE To > New Query Editor Window
次にJosienが言ったスクリプトを編集します。 CREATE TABLE
がある一番下までスクロールし、あなたの主キーを見つけて、カンマの前の最後にIDENTITY(1,1)
を追加します。スクリプトを実行します。
この問題のため、DROPとCREATEスクリプトも私にとって役に立ちました。 (生成されたスクリプトが処理します)