1

SQL Server 2005データベースには、AとBの2つのテーブルがあります。テーブルAを毎日切り捨てるサービスがあります。

最近、テーブルAを参照する外部キー制約がテーブルBに追加されました。その結果、テーブルBが空であっても、テーブルAを切り捨てることはできなくなりました。テーブルAを切り捨てた場合と同じ結果を得る回避策はありますか?

私はすでに以下のアプローチを試しましたが、IDはリセットされませんでした。

DBCC CHECKIDENT (TABLENAME, RESEED, 0)

PS。誰かがこれを重複として指摘する前に、ここでの別のことは、制約を削除したり、制約を作成したりすることは許可されていないということです。

4

3 に答える 3

2

制約を削除できない場合は、TRUNCATE TABLEを使用できないため、DELETEを使用する必要があります。

DELETE TABLEA
DBCC CHECKIDENT (TABLENAME, RESEED, 0)

注:FKを無効にしても機能しません

于 2010-03-08T19:16:38.597 に答える
-1

外部キー制約で参照されているテーブルを切り捨てる場合

1-DISABLE related FK
2-TRUNCATE all related tables.
3-ENABLE the previously disabled FKs

SET FOREIGN_KEY_CHECKS = 0; -- Disable foreign key checking.
TRUNCATE TABLE Table1;
SET FOREIGN_KEY_CHECKS = 1; -- Enable foreign key checking.
于 2017-09-21T08:01:02.820 に答える
-1

SET FOREIGN_KEY_CHECKS = 0;#MySQLは空の結果セット(つまり、ゼロ行)を返しました。-外部キーチェックを無効にします。TRUNCATE TABLE table_name;#MySQLは空の結果セット(つまり、ゼロ行)を返しました。SET FOREIGN_KEY_CHECKS = 1;#MySQLは空の結果セット(つまり、ゼロ行)を返しました。--外部キーチェックを有効にします。#MySQLは空の結果セット(つまり、ゼロ行)を返しました。

于 2017-09-21T08:17:34.753 に答える