Дубликат Вставка в транзакции

У меня есть сценарий, в котором я получил несколько записей, вставленных в таблицу, даже если проверки выполнены, я объясню последовательность кода ниже.

BEGIN Transection;
var model = select id from table1 where outlet_code = 123 and survey_id = 5
if(model){
throw new Exception("Outlet is already Surveyed.");
}else{
INSERT Record into the table
}
Commit Transection;

Проблема:
Я получаю несколько запросов от мобильной стороны для загрузки опроса, но проблема возникает, когда я получил несколько запросов с одним и тем же кодом розетки.

First  Request outlet_code = 123abc and survey_id = 5
Second Request outlet_code = 123abc and survey_id = 5

Дело в том, что Второй запрос не должен быть вставлен в код, однако в некоторых ситуациях обе записи вставляются в «table1»

Я протестировал этот сценарий, но получил исключение, и это нормально, но в базе данных есть записи, которые нарушают это условие, и я получил обе записи в базе данных

любезно предложите, что я делаю неправильно, у меня просто есть идея, что это может быть проблемой порядка совершения транзакций, но я не знаю, как решить эту ситуацию.

База данных SQL Server 2008.

0

Решение

Самый простой и чистый способ — создать первичный ключ для идентификатора столбца, чтобы таблица не принимала вставки с дублирующими идентификаторами. Это выдаст ошибку, хотя на второй вставке, так что это должно быть обработано также.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]