Ci devono essere altre cose che stanno succedendo come un trigger sul tavolo
va bene
CREATE TABLE Test(id INT PRIMARY KEY, bla CHAR(1))
GO
INSERT Test VALUES(1,'a')
INSERT Test VALUES(2,'b')
UPDATE Test SET id = 1 WHERE id = 1
Scopri se ha un trigger
SELECT OBJECT_NAME(parent_id),*
FROM sys.triggers
WHERE OBJECT_NAME(parent_id) = 'YourTable'