Поиск пропущенных значений в таблице MS SQL C#
Подскажите, пожалуйста, как решить такую задачу. Есть таблица примерного вида:

У меня есть метод для автоматического присвоения номера в поле CerNambe
public string CerNamber()
{
var cer = DBContext.Certificate.Where(p => p.CerNambe != null).OrderByDescending(p => p.Id).FirstOrDefault();
string _cer = cer.CerNambe;
int outCer = Convert.ToInt32(_cer.Substring(0, _cer.IndexOf('-')));
String newCer = Convert.ToString(outCer + 1 + "-P/" + DateTime.Now.Year);
return newCer;
}
Но я столкнулся с проблемой. Если номер пользователем присвоен ошибочно он удаляется, а нумерация нарушается. Вот вопрос: Как сделать найти это нарушение и присвоить для следующей записи пропущенный номер. Но в таком случае автоматически нумеровать не получится? Так как в методе идет поиск последняя запись!
