私はテーブルにFOREIGNKEYを追加しようとしていますし、私はこのエラーを取得することはできませんので:は、外部キーを作成することはできません
Msg 547, Level 16, State 0, Line 1 The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_RDATA_COMBO_VALUES_ID_REFERENCES". The conflict occurred in database "MyDatabase", table "dbo.EVA_REFERENCES", column 'ID_REFERENCES'.
エラーメッセージは、問題があることを言いますFK_RDATA_COMBO_VALUES_ID_REFERENCES
と競合しますが、これは作成しようとしているFKの名前ですが、まだ存在しません。
は、これが私のテーブルです:
CREATE TABLE [dbo].[RDATA_COMBO_VALUES](
[ID_RDATA_COMBO] [int] IDENTITY(1,1) NOT NULL,
[ID_REF_CDATA] [int] NOT NULL,
[ID_MODULE_REC_ID] [int] NOT NULL,
[VALUE] [nvarchar](max) NULL,
[ID_REFERENCES] [int] NOT NULL,
CONSTRAINT [PK_RDATA_COMBO_VALUES] PRIMARY KEY CLUSTERED
(
[ID_RDATA_COMBO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[RDATA_COMBO_VALUES] WITH CHECK ADD CONSTRAINT [FK_RDATA_COMBO_VALUES_ID_REF_CDATA] FOREIGN KEY([ID_REF_CDATA])
REFERENCES [dbo].[EVA_REFERENCE_CDATA] ([ID_REF_CDATA])
GO
ALTER TABLE [dbo].[RDATA_COMBO_VALUES] CHECK CONSTRAINT [FK_RDATA_COMBO_VALUES_ID_REF_CDATA]
GO
そして、これは私がFKを作成するために使用するコマンドです:ALTER TABLE
文がFK私と競合しているのはなぜ
ALTER TABLE [dbo].[RDATA_COMBO_VALUES] WITH CHECK ADD CONSTRAINT [FK_RDATA_COMBO_VALUES_ID_REFERENCES] FOREIGN KEY([ID_REFERENCES])
REFERENCES [dbo].[EVA_REFERENCES] ([ID_REFERENCES])
がまだ作成されていませんか?
更新: この質問は、この表に関する質問を全部寄せたthis oneに続きます。
「この外来キー制約に準拠しない既存のデータがテーブルに存在します」というのは、長年にわたり言われています。 –
はい、これが理由です。私はなぜメッセージがより有益ではないのだろうかと思います。 dbaのためのcouseのこれは明らかですが、私は毎日インデックスやキーを作成しません。 THANKS – LaBracca
[dbo]。[EVA_REFERENCE_CDATA]([ID_REF_CDATA])このテーブルは列ID_REF_CDATAにプライマリキーを持っていますか –