22

2つのテーブル間に外部キーが必要なので、いつものようにしてみてください。今私が持っている問題は、彼が作成に失敗し、それが見えないので、すでに鍵があるが作成されていないためです。外部キーの作成に失敗する

- Unable to create relationship 
'FK_tbl_Paramed_RegistratieBehandelingen_Users'. 
    The ALTER TABLE statement conflicted with the 
    FOREIGN KEY constraint "FK_tbl_Paramed_RegistratieBehandelingen_Users". 
    The conflict occurred in database "Nestor_Server", 
    table "dbo.Users", column 'UserID'. 

アイブ氏は、彼らが同じ型を持っている場合、彼は作成されませんなぜ、彼らは(BIGINT)を行うので、取得しないにチェックそれ

答えて

48

あなたがわからないRegistratieBehandelingen内のレコードを(持っている可能性がありますテーブル名)はUsersテーブルには存在しません。

select * from RegistratieBehandelingen a where UserID IS NULL or 
not exists (select 1 from Users b where b.UserID= a.UserID) 
+1

ええ、ヌル値はネットを動かすほど滑りました。ありがとうございます –

+0

まさに..私はちょうど同じ問題を抱えていました。このような場合には、「NO CHECK」を使用して外部キーを作成してみてください。これによりキーが作成されますが、既存のデータが作成しようとしている正確な外部キー・ルールと一致しない場合は、フォールオーバーしません。 –

11

これは、親のIDが一致しない子データがあることを意味します。

実行あなたがどんな結果を得るかどうかを確認するために、次の

SELECT * 
FROM tbl_Paramed_RegistratieBehandelingen r 
LEFT JOIN Users u on r.UserID = u.UserID 
WHERE u.UserID IS NULL 

は、(適切な場合には、テーブル名とカラム名を変更)

あなたがどんな結果を取得した場合、それはそのドンのユーザーIDが含まれている記録し表示する必要がありますユーザーに一致しません。

0

上記のクエリの後、テーブルtbl_Paramed_RegistratieBehandelingenから既存のUserIdを削除するか、テーブルUsersに挿入することができます。

関連する問題