強制自動インクリメント列があるテーブルがありますが、この列はアプリ全体で保持される非常に貴重なIDです。これを自動インクリメントカラムにするのは、私の側の開発が不十分だったと言ってすみません。
だから、ここに問題があります。このテーブルに、すでに作成されてテーブルから削除された列のIDを挿入する必要があります。このIDを復活させてテーブルに戻すようなものです。
したがって、列の増分をオフにせずに、プログラムでこれを行うにはどうすればよいですか。私が間違っている場合は修正してください。プログラムでオフにすると、0または1で再起動し、それが発生しないようにします...
Microsoft SQL Serverを使用している場合は、次のようにステートメントSet Identity_Insert [TableName] On
を発行して、autoIncrementing機能を「オフ」にすることができます。
Set Identity_Insert [TableName] On
-- --------------------------------------------
Insert TableName (pkCol, [OtherColumns])
Values(pkValue, [OtherValues])
-- ---- Don't forget to turn it back off ------
Set Identity_Insert [TableName] Off
Charlesの回答(現在は100%正しい:-)に加えて、テーブルのIDENTITYの現在の値を保持します)に加えて、テーブルのIDENTITYの現在の値を確認することもできます-これを行うことができますこのコマンドでここに:
DBCC CHECKIDENT('YourTableName')
実際にchangeにする必要がある場合は、ここでこのコマンドを使用して行うことができます。
DBCC CHECKIDENT ('YourTableName', RESEED, (new value for IDENTITY) )
実際、上記のINDENTITY_INSERTのコードは正しいです。ONにすると、値を自分で挿入することをサーバーに伝えます。 IDENTITY列に値を挿入できます。完了したら、オフに戻します(サーバーが値を生成して挿入できるようにします)。