Debe haber otras cosas sucediendo como un disparador sobre la mesa
esto funciona bien
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
Averigüe si tiene un disparador
SELECT OBJECT_NAME(parent_id),*
FROM sys.triggers
WHERE OBJECT_NAME(parent_id) = 'YourTable'