web-dev-qa-db-ja.com

SQL Serverの「IsIdentity」列プロパティはどういう意味ですか?

SQL Serverを初めて使用していますが、列のプロパティがIs Identityと呼ばれていることがわかります。

これは何を意味するのでしょうか?

列プロパティをIsdentity = Yesとしてマークすることの利点は何ですか?

21
Niyaz

これは単に、列がIdentity(seed, increment)関数を使用して主キーの値を提供することを意味します(通常)。 「オートナンバー」とも呼ばれます。以下の2行目は例です。

CREATE TABLE Table (
TableID bigint IDENTITY(1,1) NOT NULL,
DateTimeStamp datetime NOT NULL DEFAULT (getdate()),
Data nvarchar(100) NOT NULL,
CONSTRAINT PK_Table PRIMARY KEY CLUSTERED 
(
    TableID ASC
)

各レコードごとに増加する列のデフォルト値として機能します。 SCOPE_IDENTITY()から挿入された値を取得することもできることに注意してください。 @@ IDENTITYは減価償却され、トリガーまたはネストされたコンテキストの場合に誤った結果を返す可能性があるため、使用しないでください。

29
Godeke

ID列を示すフラグ-自動インクリメント列として使用できます(すべてのテーブルに推奨)

@@ IDENTITYまたはSCOPE_IDENTITY()などを使用して、テーブルに最後に挿入された行のIDを取得できるなど、多くの意味があります。

試してみてください: ID列について

4
IEnumerator

これは、MySQL AUTOINCREMENTプロパティと同等です。通常、主キー列で使用されます

1
Adam Pope