うまく設計されていない古いデータベースを継承しました。これは、非常に多くの外部キー関係が欠落している Sql Server 2008 データベースです。以下に 2 つのテーブルを示します。dbo.app_status.status_idとdbo.app_additional_info.application_idの間に FK 関係を手動で作成しようとしています。
以下のクエリを使用してリレーションシップを作成しようとするときに、SQL Server Management Studio を使用しています。
USE myDatabase;
GO ALTER TABLE dbo.app_additional_info
ADD CONSTRAINT FK_AddInfo_AppStatus FOREIGN KEY (application_id)
REFERENCES dbo.app_status (status_id)
ON DELETE CASCADE
ON UPDATE CASCADE ;
GO
ただし、クエリを実行するとこのエラーが発生します
ALTER TABLE ステートメントが FOREIGN KEY 制約 "FK_AddInfo_AppStatus" と競合しました。データベース「myDatabase」、テーブル「dbo.app_status」、列「status_id」で競合が発生しました。
各テーブルには既に約 130,000 のレコードが含まれているため、クエリが失敗するのではないかと考えています。
助けてください。
ありがとう。