PDA

Ver la Versión Completa : Generar script con los cambios estructurales que se hagan a una base de datos


Al González
28-09-2015, 20:02:23
Hola amigos.

El DBA del trabajo estará ausente por unos días. Y, aunque mis funciones técnicamente son de programador bibliotecario, por esta ocasión he quedado también a cargo de una base de datos MS SQL Server. En la empresa usamos Management Studio para administrarla.

Hay terribles impedimentos que en el último año hemos descubierto en MSSQL (como no poder tener en una tabla dos llaves externas apuntando a dos registros distintos de otra), el que ya no existan los útiles disparadores Before o la desaseada sintaxis de los procedimientos almacenados. Sinceramente es un asco, pero lo vamos sobrellevando. Microsoft sigue empeñándose en crear herramientas de programación para no-programadores. :p

Entre las cosas que recuerdo que se podían hacer fácilmente con Firebird+IBExpert era copiar al portapapeles todas y cada una de las sentencias SQL que IBExpert emitía por cada acción hecha sobre la estructura de la base de datos (agregar o borrar tablas, agregar, borrar o renombrar campos, cambiar el tipo o el orden de un campo, crear y modificar procedimientos, crear, modificar o borrar llaves e índices, y un sin fin de etcéteras). Eso hacía muy fácil preparar scripts de cambios a partir de todas las acciones que internamente generan código DDL (https://es.wikipedia.org/wiki/Lenguaje_de_definici%C3%B3n_de_datos).

Me gustaría conocer, a través de su experiencia, qué alternativas existen en MSSQL+ManagementStudio para hacer esos scripts así de fácil. Esto (http://www.dirkstrauss.com/easily-generate-table-change-scripts/#.VglzNitd__L) es lo más parecido que encontré, pero según parece tiene ciertas limitantes, como lo es no incluir instrucciones Drop Table, además del ofuscamiento dado por la excesiva tramitología en las instrucciones que agrega Microsoft.

Quiero pensar que en el mundo MSSQL+ManagementStudio debe haber algo tan bueno como Firebird+IBExpert, hecho para programadores mortales, prácticos y felices como yo, y no para el mercado de arquitectos ejecutivos reptilianos. :D

Ojalá puedan orientarme.

Un abrazo sin rodeos.

Al González.

Casimiro Notevi
28-09-2015, 20:05:39
Quiero pensar que en el mundo MSSQL+ManagementStudio debe haber algo tan bueno como Firebird+IBExpert, hecho para programadores mortales, prácticos y felices como yo, y no para el mercado de arquitectos ejecutivos reptilianos. :D
Me apunto, para enterarme :rolleyes:

AgustinOrtu
28-09-2015, 20:33:55
Saludos Al

No se que version de SQL Server estaras usando, pero un colega se que usa esta herramienta MS SQL Maestro (https://www.sqlmaestro.com/products/mssql/maestro/) que estoy seguro que hace lo que indicas aunque por supuesto es de pago

Y sino podes usar esta otra herramienta TableDiff GUI (http://weblogs.sqlteam.com/mladenp/archive/2007/08/10/60279.aspx) que basicamente es una interfaz visual para el programa TableDiff que se incluye a partir de SQL Server 2005 el cual es una aplicacion de consola. Aunque no es precisamente lo que quieres, ya que deberias generar los script luego de modificar la bd de desarrollo y no en tiempo real