FOREIGN KEY制約によって参照されているため、テーブルを切り捨てることはできませんか? 質問する

FOREIGN KEY制約によって参照されているため、テーブルを切り捨てることはできませんか? 質問する

MSSQL2005 を使用する場合、最初に子テーブル (FK 関係の主キーを持つテーブル) を切り捨てると、外部キー制約を持つテーブルを切り捨てることができますか?

私はどちらかができることを知っています

  • DELETEwhere句なしでを使用し、その後にRESEEDアイデンティティ(または)を使用します。
  • FK を削除し、テーブルを切り捨てて、FK を再作成します。

親の前に子テーブルを切り捨てていれば、上記のどちらのオプションも実行しなくても問題ないと思っていましたが、次のエラーが発生します。

テーブル 'TableName' は FOREIGN KEY 制約によって参照されているため切り捨てることができません。

ベストアンサー1

DELETE FROM TABLENAME
DBCC CHECKIDENT ('DATABASENAME.dbo.TABLENAME', RESEED, 0)

ただし、これは非常に遅いため、数百万件以上のレコードがある場合にはおそらく望ましくない方法であることに注意してください。

おすすめ記事