外部キーの依存関係の問題: 'Rating' 列を int から double に変更する
この問題は、EF データベース テーブルに列 (例: 'Rating') これは int であり、別のテーブルの外部キーによって参照されます。 「Rating」のデータ型を int から double に変更すると、エラーが発生する可能性があります:
The object 'DF__*'' is dependent on column '*''. ALTER TABLE ALTER COLUMN * failed because one or more objects access this column.
原因:
「Rating」列が最初に次のように定義されていた場合int の場合、DBMS (SQL Server など) はそれを参照する外部キー制約を自動的に作成します。この制約は、「評価」列の値が参照先テーブルの有効な行に対応することを保証することにより、データベースの整合性を強制します。
解決策:
「Rating」を int から double に正常に変更するには、外部キー制約を削除する必要があります。まず
制約を特定します:
オブジェクト エクスプローラーでテーブル属性を展開し、制約 カテゴリに移動します。 。 「DF_Movies_Rating__48CFD27E」など、「Rating」列に関連付けられた制約を見つけます。
制約を削除します。
制約を右クリックします。制約と選択を削除します。これにより、データベースから制約が削除されます。
列を変更します:
制約を削除した後、「評価」を変更できるようになります。適切な SQL を使用して列を double データ型に変換するステートメント。
制約を再作成します:
「Rating」列を変更したら、データベースを維持するために外部キー制約を再作成できます。
次の手順に従うことで、次のことができます。依存関係エラーが発生することなく、「Rating」列のデータ型を正常に変更できました。
以上がEF データベースで外部キー参照の整数列を倍精度に変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。