Оператор INSERT / UPDATE конфликтует с ограничением внешнего ключа - PullRequest
0 голосов
/ 22 ноября 2018

Я работал над миграцией базы данных с Access db -> Azure SQL server.Я воссоздал все от OleDbCommand до SqlCommand.Например ...

 private bool WriteCustomerComment(int customerID, string comment)
    {
        var sqlQuery = "INSERT INTO CustomerComment (CustomerID, Comment) VALUES (?, ?)";
        var parameters = new object[]
        {
            customerID, comment
        };

        return ExecuteNonQuery(sqlQuery, parameters);
    }

Стало ...

 private bool WriteCustomerComment(int customerID, string comment)
    {
        var parameterList = new List<SqlParameter>();
        var sqlQuery = "INSERT INTO CustomerComment (CustomerID, Comment) VALUES (@customerId, @comment)";

        parameterList.Add(new SqlParameter("@customerId", customerID));
        parameterList.Add(new SqlParameter("@comment", comment));

        return ExecuteNonQuery(sqlQuery, parameterList);
    }

Сейчас.Все программы работали просто отлично, но затем я попытался выполнить миграцию с помощью «Помощника по миграции на SQL Server» (от Microsoft, созданного для управления доступом к миграциям SQL).Поскольку при миграции со встроенной «Microsoft SQL Server Management Studio» не было передано

* Первичные ключи

* Внешние ключи

* Привязки таблиц

* Ограничения и т.д ..

Когда я сделал это, он перенес все вышеперечисленное.Однако, у программы начались проблемы, когда я попробовал это снова.Когда я вводил значения в обязательные поля, он вместо этого давал мне следующее ...

The INSERT Statement conflicted with the Foreign Key constraint "Sample$CustomerSample". Table dbo.Customer, Column "CustomerID". 

Это сообщение об ошибке отличалось в зависимости от того, какой тип теста я создавал.Заявление также может быть:

The UPDATE statement conflicted with the Foreign Key constraint.....

Теперь я попытался получить некоторую информацию в Интернете, но я действительно не знаю, как решить эту проблему.Будет ли это какой-то сценарий / изменение в рассматриваемых таблицах?Или это проблема миграции?То, что я обнаружил, говорит мне, что ключи и т. Д. Должны вести себя одинаково как в Access, так и в SQL?

Вот изображение таблицы Customer.

enter image description here

...