Transacción de aislamiento de instantánea abortada debido a conflicto de actualización

La siguiente oración:

INSERT INTO dbo.Changes([Content], [Date], [UserId], [CompanyId]) 
  VALUES (@1, @2, @3, @4);
SELECT @@identity;

me da este error de SQL 3960:

Transacción de aislamiento de instantánea abortada debido a conflicto de actualización. No puede usar el aislamiento de instantáneas para acceder a la tabla 'dbo.Companies' directa o indirectamente en la base de datos 'myDatabase' para actualizar, eliminar o insertar la fila que ha sido modificada o eliminada por otra transacción. Vuelva a intentar la transacción o cambie el nivel de aislamiento para la declaración de actualización / eliminación.

Por lo que entendí, desde el mensaje de error, no debo actualizar, eliminar o insertar en la tabladbo.Companies Durante el tiempo se está modificando otra conexión.dbo.Companies.

Pero ¿por qué ocurre cuando estaba insertando una nueva fila en otra tabla?dbo.Changes (que tiene clave extranjera paradbo.Companies) y no estaba borrando la fila referenciada endbo.Companies, pero acabo de actualizar fila endbo.Companies ¿Y no la clave principal? Esto debería funcionar bien, ¿no es así? (¿Es un error en SQL Server?)

ACTUALIZAR:

Las tablas se parecen a las siguientes:

dbo.Changes([Id] int PK, [Content] nvarchar, 
  [Date] datetime, [UserId] int, [CompanyId] int -> dbo.Companies.[Id])
dbo.Companies([Id] int PK, [Name] nvarchar)

La segunda actualización está haciendo:

UPDATE dbo.Companies WHERE [Id] = @1 SET [Name] = @2;

Respuestas a la pregunta(2)

Su respuesta a la pregunta