none
Como saber si se actualizo un fila de una tabla en sql server 2008 RRS feed

  • Pregunta

  • Hola

    Estoy desarrollando una base de datos en sql server 2008 y quisiera saber como puedo saber si una fila de un tabla se actualizo o no ha sufrido cambios?

    Agradezco su colaboración

    Cordial saludo.

    viernes, 23 de marzo de 2012 22:26

Respuestas

Todas las respuestas

  • Creo que lo que usted busca se llama campo tipo Timestamp.  Básicamente a cada registro se le asigna un número.  Cuando el registro cambia, el número aumenta.

    Jose R. MCP

    • Propuesto como respuesta alfred_magno viernes, 23 de marzo de 2012 23:14
    • Votado como útil alfred_magno viernes, 23 de marzo de 2012 23:14
    viernes, 23 de marzo de 2012 22:35
  • me parece una buena respuesta la de webjose,

    ahora si requieres algo mas elaborado, podrias meter un trigger para auditar la tabla y obtener mas información de quien modifico el registro,

    te dejo el link, 

    http://dbasqlserver.wordpress.com/2012/03/07/trigger-para-auditar-tu-base-de-datos-sql-server/

    saludos

    viernes, 23 de marzo de 2012 23:24
  • En lo personal yo buscaría una solución mas apropiada que el uso de TimeStamp, la cuál no me parece viable.  Por lo general existen mecanismos como el uso de trigger con fines de auditoria, dependiendo del método usado podrías incluir la opción OUTPUT para enviar cualquier cambio a una tabla destino que guarde los cambios realizados, este es aplicable cuando usas procedimientos almacenados responsables de realizar cualquier operacion de actualización.

    Aquí dejo unos enlaces que te pueden resultar de interés, son artículos de Paul Nielsen y una solución que él desarrollo para este fin :

    http://sqlblog.com/blogs/paul_nielsen/archive/2007/01/15/codegen-to-create-fixed-audit-trail-triggers.aspx

    http://autoaudit.codeplex.com/

    Cualquier duda con gusto te apoyamos.


    "How many years can some people exist before they're allowed to be free" Bob Dylan Email: info@geohernandez.com Blog: geeks.ms/blogs/ghernandez

    sábado, 24 de marzo de 2012 2:29
  • Es cierto que el timestamp es únicamente un indicativo de que el registro cambió y que no produce más información, como de dónde provino el cambio, qué cambió exactamente, etc., pero recordemos que el propósito del timestamp es exclusivamente el alertar que el registro se modificó.  Por lo tanto, me parece a mí que decir que no es viable sin saber los propósitos de quien pregunta es un tanto apresurado.  Si leemos la pregunta original con detenimiento podremos ver que el timestamp satisface las condiciones de la pregunta tanto como los otros métodos que se han descrito en las distintas respuestas.

    Yo diría entonces que lo mejor es esperar a ver si el OP tiene alguna duda con las respuestas que ha recibido hasta el momento para determinar si la información de una u otra solución es realmente viable o no.


    Jose R. MCP

    sábado, 24 de marzo de 2012 4:29
  • Hola.

    Además de las alternativas sugeridas por los compañeros, y que yo particularmente no usaría, existen funcionalidades en SQL Server diseñadas específicamente para lo que comentas, como Change Data Capture o Change Tracking.

    Change Data Capture: http://msdn.microsoft.com/es-es/library/bb522489(v=sql.100).aspx

    Change Tracking: http://msdn.microsoft.com/es-es/library/bb933875(v=sql.100).aspx

    Aun así, sería necesario saber qué es lo que persigues con un poco más de detalle, esto es, qué quieres capturar y por qué motivo. ¿Puedes compartirlo?


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.blogspot.es/ Sígueme en twitter en http://twitter.com/qwalgrande

    sábado, 24 de marzo de 2012 7:41
    Moderador
  • Hola WebJose

    Muchas gracias por tu ayuda, agradezco tu colaboración revisare esta opción

    lunes, 26 de marzo de 2012 20:07
  • Hola alfred_magno:

    Agradezco tu ayuda, me parece buena esa opción de auditar los cambios ya que es buena mantener registros de lo que se hace en la base de datos revisare el link que has propuesto.

    Muchas gracias
    lunes, 26 de marzo de 2012 20:09
  • Hola Geovanny -Gio- Hernandez:

    Muchas gracias por tu ayuda, revisare con detalle estas opciones para auditar los cambios en la base de datos. estoy desarrollando hasta ahora las operaciones CRUD de las tablas de la base de datos pero se que voy a tener mas requerimientos así que los estaré compartiendo por este medio.

    Gracias 


    lunes, 26 de marzo de 2012 20:11
  • Hola qwalgrande:

    Agradezco tu ayuda, revisare con detalle los links que me has enviado, estoy desarrollando hasta ahora las operaciones CRUD de las tablas de la base de datos pero se que voy a tener mas requerimientos así que los estaré compartiendo por este medio.

    Muchas gracias.

    lunes, 26 de marzo de 2012 20:14