この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 12402|答える: 3

[出典] SQL Serverデータベースの自己成長ID列の操作メソッドを更新します

[リンクをコピー]
掲載地 2018/08/23 12:20:44 | | | |
日常的なSQL Server開発において、Identityタイプのアイデンティティ列は、テーブル構造の自己成長番号としてよく使われます。 例えば、商品番号やレコードのシリアル番号などです。 自己成長型識別カラムへの参照はデータベースプログラムの開発を大いに容易にしますが、この頑固なフィールドタイプが問題を引き起こすこともあります。

1. 識別列のフィールド値を修正する:

関数を実装するために、Identity self-growing型のフィールドの値を変更する必要があることもありますが、同一列のタイプ上、この操作はデフォルトでは許可されていません。 例えば、データベースに通常5つのデータが追加され、その時点で2つが削除された場合、再度追加すると自己成長識別カラムに自動的に6の値が割り当てられますが、データ挿入時に3を割り当てたい場合はデフォルトでは許可されていません。 このフィールドの値を変更したい場合は、識別フィールドの値の挿入を完全にコントロールできます。まだ方法はあります、笑。

セットIDENTITY_INSERT /[テーブル/] [オン|[外れ]
上記の文を使えば、テーブル内の自己成長識別子列が自動的に成長するかどうかを簡単に制御できます。つまり、レコードを挿入する際に識別子列フィールドの値を手動で指定できるかどうかです。 オン通りに指定していれば、挿入時に識別カラムフィールドの値を指定できますが、割り当てられた値は自動的に増えません。 もちろん、使い切った場合はこの文を使ってスイッチをデフォルト状態にオフにしなければなりません。そうしないと、次回データを入れたときに割り当てられた値を自動的に増やしません。

2. 識別列のフィールド値をリセットする:

データレコードの一部が削除され、後から新しいデータレコードが追加されると、識別列の値は大きなアイドル区間を持ち、非常に不快に見えます。 テーブル内のすべてのレコードを削除しても、アイデンティティカラムの値は自動的に無限に増加し続け、ゼロから増えることはありません。 自己成長フィールドのシード値は以下の文でリセットできます:

DBCC CHECKIDENT(テーブル、[RESEED|NORESEED]、[1])
上記の文により、指定されたテーブルのシード値は1にリセットされます。 ただし、シードを1にリセットしたくない場合は、3つ目のパラメータを使いたいシード値に置き換えることができます。 現在のシードを知りたいなら、3つ目のパラメータを設定する代わりにNORESEEDを使う必要があります。




先の:SQL Server 2012 自動成長カラムに値ジャンプの問題がある
次に:WindowsがRedisサービスを起動できず、エラー1067:プロセスが予期せず終了します。
 地主| 掲載地 2018/08/23 12:57:08 |
1. テーブル内のすべてのデータが削除されると、自動的にゼロに増加します。 (テーブル名を切り落とす)

2. テーブルのデータを削除せず、自動成長の値を直接リセットする。 (DBCC CHECKIDENT('TableName', RESEED, 0)
 地主| 掲載地 2018/08/23 13:01:32 |
 地主| 掲載地 2019/02/13 9:59:15 |
自己増量列の現在の値をテーブルで確認してください:
    DBCC CHECKIDENT(テーブル名)

テーブル内の自己増量列の現在の値を修正します:
    DBCC CHECKIDENT(TableName, RESEED, value)
    RESEEDは列名ではなく、固定された書き方で書かれています。


例えば、Divisionテーブルの自己増量列の現在の値を30に変更したい場合、次のコマンドを使えます
DBCCチェックIDENT(部門、RESEED、30名)
次に
DBCC CHECKIDENT(部門)
現在の値は30であることがわかります
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com