質問

私はfksの束のあるテーブルを持っています。

Table Vehicles
-----------
ColorID -> Color.ID
MakeID -> Make.ID
ModelID -> Model.ID
etc...

私の問題は、いくつかの列を忘れてしまい、それらを追加する必要があるということです。テーブルを右クリックして「デザイン」を選択することでそれらを追加できますが、列をnullせずに、列を削除したい場合はそうではありません。ドロップ/作成スクリプトを生成することもできますが、このエラーが発生します。

Msg 3726, Level 16, State 1, Line 4
Could not drop object 'dbo.SellVehicles' because it is referenced by a FOREIGN KEY constraint.

各fkを削除して削除してからドロップ/作成する必要がありますか?これらのfksをすばやく落として再作成する方法はありますか?

なぜそうしないのですか

IF  EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_SellVehicles_Conditions]') AND parent_object_id = OBJECT_ID(N'[dbo].[SellVehicles]'))
ALTER TABLE [dbo].[SellVehicles] DROP CONSTRAINT [FK_SellVehicles_Conditions]
GO

このエラーを排除しますか?他のテーブルのFKはまだ参照されていますか?

役に立ちましたか?

解決

エラーをトリガーしている制約はです ではありません dbo.SellVehicles テーブル;それはテーブルの上にあります 参照 dbo.SellVehicles テーブル。色、作成、モデルのテーブルへの参照は問題ではありません。親子関係で子供をドロップ/削除しようとしています。

私はあなたがテストするためにテストした制約を疑います ALTER TABLE ... DROP CONSTRAINT ....

SSMSでは、テーブルを右クリックして、「依存関係」を選択できます。に依存するオブジェクトの表示を選択するラジオボタンがあります dbo.SellVehicles テーブル、またはそのもの dbo.SellVehicles テーブルはに依存します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top