У меня есть приложение ASP.Net Web Forms, которое вставляет новые записи (запросы) в таблицу SQL Server с помощью SqlCommand и метода ExecuteNonQuery. Таблица имеет один первичный ключ (int id), для которого задано значение «Спецификация удостоверения» = «Да», приращение удостоверения 1, начальное значение удостоверения 1. Приложение работает уже много лет. Около месяца назад база данных была перемещена с физического сервера на виртуальный сервер без каких-либо явных проблем. База данных работает на SQL Server 10.50.1617.0.
Совсем недавно пользователь сообщил, что создал около 90 запросов, но не смог их найти. Когда я изучил таблицу запросов, я смог найти только один запрос, созданный для нее за последние несколько дней. Самый высокий идентификатор в таблице запросов был 5404. В качестве эксперимента я попросил ее создать новый запрос. Я ожидал, что он создаст новый идентификатор 5405, но на самом деле он создал идентификатор 2975. Я попросил ее создать еще один запрос, и он перезаписал первый запрос другим с идентификатором 2975. Я создал тестовый запрос, и он создал один на id 5405. Что может быть причиной этого?
Вот С# для вставки:
string sql = "insert into requests (end_user_email) values (@email)";
SqlConnection cn = new SqlConnection(_cnString);
SqlCommand cmdIns = new SqlCommand(sql, cn);
cmdIns.Parameters.Add("@email", SqlDbType.NVarChar);
cmdIns.Parameters["@email"].Value = email;
cmdIns.Connection.Open();
cmdIns.ExecuteNonQuery();