Pregunta

La base de datos rastrea todos los cambios a través del mecanismo " Cambiar captura de datos ".Necesito agregar información adicional sobre los usuarios que realizan estos cambios. Los siguientes usuarios no son usuarios de SQL Server.La autorización de seguridad se realiza a través de un mecanismo externo.

Quiero agregar una tabla auxiliar con columnas " start_lsn " y " userid " para asociar una transacción con el usuario autorizado. ¿Hay alguna forma de determinar el valor " start_lsn ", que corresponde a la transacción actual ejecutada en el código de la aplicación?

¿Fue útil?

Solución

En la actualidad, he encontrado la siguiente solución:

1)

  • Crear una tabla más (por ejemplo, la useractividad "" ), que tiene el ID de y "" Columnas;

  • Utilice la columna "ID" como la clave principal;

  • Habilitar la opción de CDC para esta tabla.

2)

  • envolver todas las operaciones de modificación de datos con un alcance de transacción ;

  • Agregue un nuevo registro de datos a esta tabla con el ID de usuario actual "" durante una transacción particular:

    • comienza exclusivo transacción;

    • Realizar "Manipulación de datos";

    • Inserte información sobre "userid" en la tabla de la ".

Dado que la transacción es exclusiva y todas las operaciones se realizaron dentro de un solo ámbito de transacción, el valor Última_lsn " (" start_lsn ") es el mismo.

Después de eso, utilizando el operador de la unión, fusiona los datos de la tabla de la USOMACTIVIDAD " con la información de manipulación de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top