Somos Expertos Access. Contacto atravez de Skype Skype logo expertos_7

Forma fácil de actualizar todas las tablas que poseen un campo con el mismo nombre

Hablamos de como concatenar múltiples resultados en una cadena de caracteres usando  FOR XML PATH y además de la cláusula  EXISTS . Aquí les traemos un examen práctico  que los incorpora.

En uno de nuestros proyectos, tenemos una base de datos archivada que contiene el historial de algunas sentencias Selects a tablas en la base de datos de producción. Ya que en la base de datos archivada puede haber múltiples entradas del mismo registro de diversas ocasiones cuando se corrieron estos Selects, necesitamos mantener la fecha y hora (date stamp) hay que tener en cuenta que las tablas de historial tienen sus propias claves primarias. A la base de datos archivada se le importa la data a una hora en específico. En el último paso del proceso de importación, debemos asegurarnos  que todas las nuevas entradas a la base de datos archivada tengan la misma fecha y hora, en nuestro caso usamos el campo llamado HistDate. Este guarda la fecha de cuando el registro fue archivado.

La manera difícil

Puede crear a procedimiento almacenado con una sentencia de actualización T-SQL para cada una de las tablas que actualizarán el campo HistDate en cada tabla. El inconveniente  para este método es que hay  que darle mantenimiento, siempre que se agregue una nueva tabla con el campo en cuestión.

Ahora la manera fácil

Para hacerlo, tenemos que usar SQL dinámico. Pero no queremos tener errores debido a que haya tablas que no tengan el campo HistDate –no todas las tablas en la base de datos archivada necesariamente tienen esta columna. Por lo tanto, para construir una sentencia de actualizar solo las tablas que si lo tengan, se necesita buscar en sys.columns y determinar si la tabla contiene o no una columna con dicho nombre.

Aquí está el T-SQL:

Note el uso de parámetros: los cual es de mucha ayuda al momento de manejar las variables de entradas como es el caso de @HistDate y protegiéndonos de una inyección de SQL.

Para usar el código, simplemente cree un procedimiento almacenado que acepte el parámetro HistDate y agregue otra línea en su trabajo archivado. Otra alternativa es que nos contrate y nosotros le daremos una gran solución para dicho archivado. Contáctenos  aquí.

¿A qué otras solución ingeniosa ha llegado usted?

Publicado en SQL Server, Uncategorized

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

 

Quienes Somos

ExpertosMicrosoftAccess.com es un servicio de la empresa IT Impact, Inc., una compañía de programación y servicios para empresas en Latino América. Ofrecemos servicios en .Net, SQL Server y Microsoft Access. Muchos de nuestros desarrolladores han obtenido el galardón de Access MVP, un título proveído por Microsoft a aquellos que han hecho aportes a la comunidad y que han demostrado tener conocimientos superiores del producto.

Nuestro Equipo

  • Le ayudamos a "Descubrir el poder de sus datos™" con reportes y sistemas de Access excepcionales .
  • Creamos soluciones de bases de datos personalizadas utilizando Microsoft Access y / o SQL Server.
  • Nuestros consultores ganaron sus estrellas en las empresas de servicios y/o manufactura antes de convertirse en programadores.

Blogs anteriores