0

複数のデータベースの主キー列に Identity プロパティを設定してはならないテーブルがあります。意図せずにデザイン ビューからプロパティを設定した人もいるかもしれません。

したがって、その ID 仕様を検出してテーブルから削除する 1 回限りのクエリを書きたいと思います。

すべての検索記事を読みましたが、新しいテーブルの作成、そのメタデータ/データのコピー、名前の変更などのソリューションに満足していません。そのテーブルは非常に重要であり、列には多くの制約があるためです。

私もIdentity_insertプロパティを設定しようとしましONたが、それは一度だけです。サーバーが再接続されると、保存できません。

SET IDENTITY_INSERT <tableName> ON;

IDENTITY_INSERT ONデータを挿入する前に設定して、バックエンドプロシージャも変更したくありません。

助言がありますか?

4

1 に答える 1

0

残念ながら、最初にテーブルを再作成することなしにテーブルから IDENTITY プロパティを削除する方法は他にありません。そのため、データを新しいテーブルに格納し、元のテーブルを削除してから、暫定テーブルの名前を正しい名前に変更する必要があります。

また

新しい列をテーブルに追加してから、データをこの新しい列にコピーし、ID 列をテーブルから削除して、最後に新しい列を主キーとして設定することができます。

IDENTITY 列を見つける方法...

select object_name(object_id) table_name,name column_name 
from sys.columns
where is_identity = 1
于 2013-02-06T08:55:49.517 に答える