Evite que Access use una identidad incorrecta al agregar a la tabla vinculada en el servidor SQL

TL: DR; versión:

Si inserto un registro en una tabla vinculada que tiene un activador que inserta un registro en una tabla diferente, Access muestra la identidad global (la identidad de esa tabla diferente) en lugar de la clave primaria correcta y llena las columnas con los valores de el registro con la identidad correspondiente si existe un registro con la identidad correspondiente.

¿Hay alguna forma de detener / evitar este comportamiento?

MCVE:

Tengo la siguiente tabla:

CREATE TABLE MyTable(
    [ID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,
    [Col1] [nvarchar](255) NULL,
    [Col2] [nvarchar](255) NULL
)

La tabla se siembra con la siguiente información (antes de crear el desencadenador)

INSERT INTO [MyTable]
           ([Col1]
           ,[Col2])
     VALUES
           ('Col1'
           ,'Col2')
GO 10

Y la siguiente tabla que registra los cambios:

CREATE TABLE MyTable_Changes(
    [ID] [int] NOT NULL,
    [Col1] [nvarchar](255) NULL,
    [Col2] [nvarchar](255) NULL,
    [IDChange] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY
)

Esta tabla tiene el siguiente desencadenante adjunto:

CREATE TRIGGER MyTableTrigger ON MyTable AFTER Insert, Update
    AS
BEGIN 
    SET NOCOUNT ON;
    INSERT INTO MyTable_Changes(ID, Col1, Col2)
    SELECT * FROM Inserted
END

MyTable es una tabla vinculada en Microsoft Access, que utiliza la siguiente cadena de conexión ODBC:

 ODBC;DRIVER=SQL Server;SERVER=my\server;Trusted_Connection=Yes;APP=Microsoft Office 2010;DATABASE=MyDB;

Estoy usando Access 2010 y un archivo .accdb

El problema:

Estoy insertando registros a través de la GUI. He insertado varios registros antes de habilitar el activador, y la semilla de identidad para MyTable es 100, pero para MyTable_Changes, la semilla de identidad es 10.

Cuando agrego un nuevo registro a MyTable y configuro Col1 igual a "A", después de insertar, la columna de ID del registro insertado se muestra como 11, y Col2 se muestra como el valor de Col2 para ID 11. Col1 se muestra normalmente. Después de presionar F5, el registro aparece como si lo acabara de agregar.

Lo que he intentado:

He leído numerosas publicaciones (comoéste) He intentado un compacto y reparar, cambiando la semilla en la tabla en Access (que no funciona ya que es una tabla vinculada), pero no he podido resolverlo.

Por ahora, he incluido una solución alternativa que puede abrir tablas vinculadas como un formulario de hoja de datos y consultas después de la actualización, luego navega hasta el último registro, pero esto está lejos de ser óptimo, ya que aumenta el tiempo que lleva agregar registros, y las personas no pueden usar el panel de navegación para abrir tablas y agregar registros.

Imagen: (izquierda: antes de agregar el registro, derecha: después)

Tenga en cuenta que tanto Col1 como Col2 cambiaron a los valores correspondientes con la ID 1 después de la actualización. Después de actualizar, el registro que había agregado (ID 11, Col1 a, Col2 nulo) se mostró correctamente.

Respuestas a la pregunta(3)

Su respuesta a la pregunta