SQL Serverの列をプライマリキーなしで自動インクリメントできますか?SQL Serverがプライマリキーなしの列を自動的にインクリメント
もしそうなら、どうすればいいのですか?
ありがとうございました
SQL Serverの列をプライマリキーなしで自動インクリメントできますか?SQL Serverがプライマリキーなしの列を自動的にインクリメント
もしそうなら、どうすればいいのですか?
ありがとうございました
はい。 IDENTITY
列を主キーにする必要はありません。
CREATE TABLE T
(
X INT PRIMARY KEY,
Y INT IDENTITY(1,1)
)
これはいつ便利なのでしょうか。あなたがPKとして使用したい自然なキーを持っているなら、代理代替キーに一意の制約を入れたいと思うでしょう。
FKの関係を設定するために、SQL Serverは列がPKかどうかを気にせず、一意のインデックスのみを必要とします。
レコードがテーブルに追加された順序を簡単に覚えておくことができます。 –
@ラリー - ああ、もちろん。それを考えなかった。 –
@Larry、CreatedDateはデフォルト(getdate())であり、はるかに意味があります。 –
IDENTITYキーワードを使用して列を宣言し、単純にPRIMARY KEY制約を作成しないでください。
確かに、この列は 'INT IDENTITY'(またはBIGINT)として宣言されていなければなりません。それがプライマリキーである必要はありません - 全くありません... –
何があなたを拘束しましたか? –
@adrian:...あなたのプロダクションシステムではありません。 :-) –