Возможно, здесь что-то происходит, о чем вы не знаете. Когда вы вставляете строку и получаете нарушение первичного ключа, попробуйте выполнить SELECT с соответствующими значениями ключа из строки, которую нельзя вставить (конечно, после выполнения ROLLBACK), и посмотрите, что вы получите. Или, возможно, в таблице есть триггер, в который вы вставляете данные, которые вставляют строки в другую таблицу, которая использует тот же первичный ключ, но не был очищен.
Вы можете попробовать следующий SELECT, чтобы увидеть, что появляется:
ВЫБРАТЬ *
FROM YOUR_TABLE
ГДЕ ДАТА> 2/7/2010 И
ДАТА <2/9/2010; </p>
(Не уверен насчет правильного формата константы даты в SQL Server, поскольку я не использовал ее несколько лет, но я уверен, что вы поняли идею). Посмотри, что ты получишь.
Удачи.