3

C#アプリでトリガーする次のSQLがあります。

すべて正常に機能しますが、IDテーブルは自動インクリメントされません。最初のエントリに値1を作成します。その後、不明瞭なIDを作成できないため、他の挿入は許可されません。

SQLは次のとおりです。

CREATE TABLE of_mapplist_raw (
    id          integer PRIMARY KEY NOT NULL,
    form_name   varchar(200) NOT NULL,
    form_revi   varchar(200) NOT NULL,
    source_map  varchar(200),
    page_num    varchar(200) NOT NULL,
    fid         varchar(200) NOT NULL,
    fdesc       varchar(200) NOT NULL
)";

私はそれがここで遊んでいる男子生徒の間違いだと確信しています。

4

2 に答える 2

8

integerシードと増分を指定する必要があります。(さらに、キーワードがあるとは思わない...)

id  [int] IDENTITY(1,1) NOT NULL,

最初の値はシードです

2つ目は、増加間のデルタです

A Question you might ask :

増加間のデルタ?なぜそれが必要なのですか?その常に1....??

ええと-はい、いいえ。行の間にギャップを残したい場合があります-後で行を挿入できるようにします...特にそのキーによるクラスター化インデックス....速度が重要な場合...ギャップを残すように事前に設計できます。

psは、ウォッチャーから他のシナリオを聞いてうれしいです。

于 2012-05-09T11:46:14.470 に答える
2

あなたはアイデンティティに言及する必要があります。

id  int IDENTITY(1,1) NOT NULL
于 2012-05-09T11:47:22.050 に答える