IDENTITY列のみを持つテーブルに挿入する方法は?


14

IDENTITY列のみを持つテーブルがある場合、新しい行をどのように挿入しますか?私は次を試しました:

INSERT INTO TABLE
(Syntax error)

INSERT INTO TABLE VALUES()
(Syntax error)

INSERT INTO TABLE (Id) VALUES()
(Syntax error)

私は何かをテストしていますが、IDENTITY列のみが必要です。本番用ではありません。それ以外の場合、このようなテーブルは、他の列が不要なシーケンスジェネレーターとして使用できます。

回答:


21

ドキュメントから:

DEFAULT VALUES
新しい行に、各列に定義されているデフォルト値を強制的に含めます。

そう:

INSERT dbo.TABLE DEFAULT VALUES;

加えて:

  1. 常にスキーマプレフィックスを使用する
  2. 常にセミコロンでステートメントを終了します

興味深いことに、これはSQL2003(F222)の一部のように見えますが、以前にその構造を見たことはありません(ただし、INSERT INTOが必要なようです)。あなたは毎日新しいことを学びます:
レナート

3

別の方法はを使用することIDENTITY_INSERTです。そのようにして、どの値を入れるかを手動で定義できます。

SET IDENTITY_INSERT TABLE ON ;

INSERT INTO TABLE (ID) VALUES (1), (2) ;

SET IDENTITY_INSERT TABLE OFF ;

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.