[解決済み] FOREIGN KEY制約で参照されているため、テーブルを切り捨てることができないのですか?
2022-02-01 05:39:13
質問
MSSQL2005を使用して、最初に子テーブル(FK関係の主キーを持つテーブル)を切り捨てた場合、外部キー制約を持つテーブルを切り捨てることができますか?
私は、次のいずれかを行うことができることを知っています。
-
を使用します。
DELETE
をwhere節なしで指定しRESEED
同一性 - FKを削除し、テーブルを切り詰め、FKを再作成する。
子テーブルを親テーブルより先に切り捨てていれば、上記のオプションのどちらもやらなくても大丈夫だろうと思っていたのですが、このようなエラーが出てしまいます。
テーブル 'TableName' は FOREIGN KEY 制約によって参照されているため、切り捨てることができません。
どうすればいいですか?
正しい。FK制約がかかっているテーブルを切り捨てることはできない。
通常、私の場合はこのような処理をしています。
- 制約を解除する
- テーブルを切り詰める
- 制約を再作成する。
(もちろん、すべてトランザクション内です)。
もちろん、これは の子はすでに切り捨てられています。 そうでない場合は、データがどのようなものかによって、別の方法を取ることにしています。(ここでは説明しきれないほど多くの変数があります)。
元の投稿者は、なぜそうなるのかを判断しました。 この回答 をご覧ください。
関連
-
[解決済み] Microsoft OLE DB Provider for SQL Server エラー '80040e14' '=' 付近の構文が正しくない
-
[解決済み] SQL Server: caseステートメントでUniqueIdentifierを文字列に変換する
-
[解決済み] T-SQLを使用して外部キー制約を一時的に無効にするにはどうすればよいですか?
-
[解決済み] SQL Serverで、指定したテーブルを参照しているすべての外部キーを一覧表示するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] 外部キー制約のあるテーブルを切り捨てるには?
-
[解決済み] MySQL エラー 1215。外部キー制約を追加できません
-
[解決済み] FOREIGN KEY制約を導入すると、サイクルや複数のカスケード・パスが発生する可能性があります - なぜですか?
-
[解決済み】外部キー制約。ON UPDATEとON DELETEを使用する場合
-
[解決済み] 外部キー制約は、サイクルまたは複数のカスケードパスの原因となる可能性がありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SQL Server MS 2012の現在のセキュリティコンテキストでは、サーバープリンシパルはデータベースにアクセスできません。
-
[解決済み] sql文の角括弧[]の使い方を教えてください。
-
[解決済み] データベースのトランザクションログが満杯です。ログの領域が再利用できない理由を調べるには、sys.databases の log_reuse_wait_desc カラムを参照してください。
-
[解決済み] 結果を分割するためのSQLの小数点以下の値
-
[解決済み] ')' 付近の構文が正しくない場合の対処方法
-
[解決済み] sp_columnsが結果を返さないのはなぜですか?
-
[解決済み] 日付から年内の週番号を取得する
-
[解決済み] 外部キー制約のあるテーブルを切り捨てるには?
-
[解決済み】TSQLを使用してデータベース内のすべてのテーブルを切り詰めるには?
-
[解決済み】SQL Server - トランザクションは、エラー時にロールバックしますか?