Deve haver alguma outra coisa acontecendo como um gatilho na mesa
isso funciona bem
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
Descubra se ele tem um gatilho
SELECT OBJECT_NAME(parent_id),*
FROM sys.triggers
WHERE OBJECT_NAME(parent_id) = 'YourTable'