これは私のSQL文の一部です:
MERGE INTO Scyk.dbo.Threads AS d
USING (SELECT Id,Question,QuestionTitle, Answer, Category FROM Homework.dbo.Zadanes) AS s
ON 1 = 2
WHEN NOT MATCHED THEN
INSERT (CurrentValue, NumberOfPosts, TotalValue, Views, Title, DateCreated, LastPostAuthor, LastPostDateTime, IsDeleted, Restricted, RestrictWrite, Sticked, CategoryName, AuthorUserName)
VALUES (0, 2, 0, 0, s.QuestionTitle, CURRENT_TIMESTAMP, 'zadania', DATEADD(second, 1, CURRENT_TIMESTAMP), 0, 0, 0, 0, s.Category, 'zadania')
これは私が得るエラーです:
MERGE ステートメントが FOREIGN KEY 制約 "FK_dbo.Threads_dbo.Categories_CategoryName" と競合しました。データベース「Scyk」、テーブル「dbo.Categories」、列「名前」で競合が発生しました。
だから私が最初にしたことは、外部キーの整合性をチェックすることでした:
SELECT Distinct(Category) FROM [Homework].[dbo].[Zadanes]
where not exists
(select distinct(Name) from Scyk.dbo.Categories)
しかし、これは何も返しませんでした。これは、外部キーが適切であることを意味します。それで、ここで何が起こっているのですか?