75

選択した値を挿入できるように、別のテーブルから外部キーを削除したい。

私はデータベースが初めてなので、外部キー値を削除または削除するための正しいSQLクエリを教えてください。

4

15 に答える 15

158

フォローしてみてください

ALTER TABLE <TABLE_NAME> DROP CONSTRAINT <FOREIGN_KEY_NAME>

参照: http://www.w3schools.com/sql/sql_foreignkey.asp

于 2012-09-19T06:52:57.980 に答える
14

参照整合性を参照してそれを行うのは間違っています。一度壊れると、レコードを調べて制約を壊すレコードを削除せずに再度オンにするのは簡単ではないためです。

とにかく、構文は次のとおりです。

ALTER TABLE Tablename DROP CONSTRAINT ContName;

MSDN を参照してください。

于 2012-09-19T06:51:05.140 に答える
5

DB からすべての制約を削除するには:

SELECT 'ALTER TABLE ' + Table_Name  +' DROP CONSTRAINT ' + Constraint_Name
FROM Information_Schema.CONSTRAINT_TABLE_USAGE
于 2015-02-24T18:41:34.067 に答える
5
ALTER TABLE [TableName] DROP CONSTRAINT [CONSTRAINT_NAME]

しかし、気をつけてください。一度そうすると、チャンスが二度と得られない可能性があります。基本的なデータベースの本を読んで、外部キーが必要な理由を確認してください。

于 2012-09-19T06:52:30.443 に答える
2

完全に削除する前に、制約を (一時的に) 無効にすることを検討する必要があります。

テーブル作成 TSQL を見ると、次のように表示されます。

ALTER TABLE [dbo].[dbAccounting] CHECK CONSTRAINT [FK_some_FK_constraint]

実行できます

ALTER TABLE [dbo].[dbAccounting] NOCHECK CONSTRAINT [FK_some_FK_constraint]

CHECK...次に、制約に違反する一連の値を挿入/更新し、元のステートメントを実行してオンに戻します。

(過去に継承した設計の悪いシステムをクリーンアップするために、これを行う必要がありました。)

于 2016-02-07T17:30:45.697 に答える
1

または、SQL Server Management Studio 自体から外部キー制約を削除することもできます。コマンドが機能しない場合は、試すことができます

  1. データベース ビューを展開します。
  2. 外部キー制約を持つテーブルを右クリックします。デザインを選択します。テーブル列に関する情報を含むタブが開きます。
  3. 外部キー参照がある列を右クリックします。または、任意の列を右クリックします。リレーションシップを選択します。
  4. リレーションシップのリストが (存在する場合) ポップアップ ウィンドウに表示されます。
  5. そこから、外部キー制約を削除できます。

それが役立つことを願っています

于 2017-01-13T00:24:29.283 に答える
1
ALTER TABLE table
DROP FOREIGN KEY fk_key

編集:あなたがSQLサーバーを使用していることに気づきませんでした、私の悪い

ALTER TABLE table
DROP CONSTRAINT fk_key
于 2012-09-19T06:51:21.550 に答える
-6
alter table <referenced_table_name> drop  primary key;

外部キー制約は削除されます。

于 2016-09-26T13:15:33.540 に答える