Pasar de Desarrollo a Producción una Base de datos SQL Server

By Juan Carlos Heredia Mayer 09/09/2014 Base de Datos

SQL Server

Seguro que más de uno siempre hemos tenido la posibilidad de llevar una base de datos de desarrollo a producción. Felizmente contábamos con herramientas como: Data Import for SQL Server o esta: SQL Server Hosting Toolkit., que nos permiten generar archivos script (con soporte para SQL Server 2000,  SQL Server 2005 y otras versiones), de nuestra base de datos. Podemos escoger en generar sólo la estructura de nuestra base de datos, o generar las consultas (queries) necesarias para insertar los datos, o ambos. O esta otra herramienta: DB Comparer for SQL Server, que nos permite comparar y sincronizar dos bases de datos (alojadas en el mismo servidor o en servidores distintos).

Ahora viene lo más interesan: ¡ya tenemos esta herramienta incluida Visual Studio desde la versión 2008!. La estuve probando y he quedado fascinado con los resultados.

Esta herramienta también la podríamos usar para actualizaciones de base de datos, en un entorno de desarrollo a pre-producción, y también puede ser usado de pruebas a producción.

Muchas veces no sólo cambiamos en una base de datos los procedimientos almacenados o funciones definidas por el usuario, sino también cambiamos la estructura, o solamente los cambios son tantos cambios que no nos acordamos cuales fueron. Y ¿cómo haces la actualización de la nueva estructura con los ISPs (Hosting/Housing o en un cliente si somos una empresa de desarrollo), sin perder los datos de pruebas?.

Investigando un poquito más sobre esta herramienta encontré más entradas interesantes como:  SQL Database Publishing wizard is now in Visual Studio 2008, también en el blog de Web Developer team de MS, y esta otra entrada: Tip/Trick: How to upload a .SQL file to a Hoster and Execute it to Deploy a SQL Database, del gran ScottGu’s. La primera es una guía de cómo usar la herramienta, y la segunda nos enseña cómo crear una página aspx, para la ejecución directa de nuestra query generada directamente por la aplicación Web.

Ah! y para terminar con las buenas noticias del Visual Studio (que hasta ahora voy descubriendo), quizás se estén preguntando si es necesario abrir Visual Studio cada vez que necesitemos ejecutar esta herramienta, pues no necesariamente, también podemos encontrar la herramienta en la siguiente ruta: C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\1.2\SqlPubWiz.exe (dependiendo de la versión), para lanzarla directamente y empezar con el asistente. Finalmente si la usamos mucho, la agregaríamos un acceso directo a la barra de inicio rápido.

Si quieres más trucos de este tipo te invito a echarle un vistazo a este Nuevo libro de SQL Server 2014 en Español

Comprar en AmazonSQL Server 2014 | Amazon Kindle Comprar en Google PlaySQL Server 2014 | Google Play Books

T-SQL: Eliminar todos los registros de todas las tablas de una base de datos SQL Server

By Juan Carlos Heredia Mayer 01/09/2014 Base de Datos

SQL ServerEs común que para realizar algunas pruebas sobre Base de Datos hagamos una réplica de la misma y la vaciemos de datos. Por ejemplo pasar los datos de un entorno de pre Producción a Producción.

El problema viene cuando tenemos una base de datos pesada, con muchas tablas y datos, y nos toca o bien lanzar un script de creación de tablas vacías (que en ocasiones no respeta claves ajenas, índices, etc.) o bien ejecutar sentencias TRUNCATE a mano.

Bien, pues me he puesto a investigar un poco y he logrado un script en T-SQL para SQL SERVER  que recorre las tablas de una base de datos, elimina las restricciones (para que no falle al borrar datos de una tabla relacionada con otra), hace un TRUNCATE de la tabla y vuelve a restablecer las restricciones tal cual estaban.

EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
GO

EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
GO

EXEC sp_MSForEachTable

'BEGIN TRY
   TRUNCATE TABLE ?
END TRY

BEGIN CATCH
   DELETE FROM ?
END CATCH;'

EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
GO

EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
GO

De este modo tendríamos la tablas vacías de datos pero respetando su estructura, restricciones, relaciones, vistas, procedimientos almacenados, etc.
Espero que te sea útil! Desde luego a mi me ha ahorrado unas horas de trabajo.

Si quieres más trucos de este tipo te invito a echarle un vistazo a este Nuevo libro de SQL Server 2014 en Español

Comprar en Amazon

SQL Server 2014 | Amazon Kindle

Comprar en Google Play

SQL Server 2014 | Google Play Books

Nuevo libro de SQL Server 2014 en Español

By Juan Carlos Heredia Mayer 06/08/2014 Base de Datos

Microsoft SQL Server 2014 en EspañolEn este blog siempre he estado recomendado materiales y recursos distribuidos en la red sobre SQL Server y otros temas similares. Esta vez me complace presentar mi propio libro de Programación y Administración de Base de Datos en Microsoft SQL Server 2014, publicado en formato electrónico a través de Amazon y Google Play.

Es la primera vez que publico un libro en formato electrónico. Anteriormente he tenido la oportunidad de publicar otros títulos en formato impreso, pero esta vez me decidí por este formato ya que no solo es la tendencia sino por su practicidad en la distribución, no solo en el mercado local sino en todo el mundo (para gente de habla hispana, claro está) . Me hace mucha ilusión compartir con la juventud estudiosa y profesional, conocimientos sobre SQL Server que he ido alimentando a través de todos estos años usando este producto.

La presente publicación brinda las técnicas y estrategias básicas y avanzadas para una buena programación y administración de base de datos usando Microsoft® SQL Server™. Si bien, hace una referencia a la versión 2014 recientemente lanzada por Microsoft, todo el contenido del libro podrá ser usado también en versiones anteriores del programa. Así que no hace falta preocuparse en conseguir esta versión específicamente. Incluso la edición Express (totalmente gratuita) valdrá perfectamente para seguir las lecciones.

Durante la lectura, encontrarás que después de cada presentación de un concepto (teórico) inmediatamente verás uno o más ejemplos de tal concepto. Es por eso que la presente publicación se caracteriza por ser un texto netamente práctico, que actúa como una guía que imaginariamente ve más allá de sus necesidades y le da un panorama más amplio con nuevas formas o métodos de usar los conceptos que poco a poco usted va asimilando. Según mi opinión, considero que la mejor manera de enseñar programación es mediante ejemplos, ya que la descripción de los comandos, la sintaxis y las referencias del lenguaje no son suficientes para que una persona aprenda a programar.

Los temas tratados en esta publicación son:

  • Teoría de Base de Datos
  • Planificación de la Seguridad
  • Administración de SQL Server
  • Transact-SQL
  • Trabajando con Tablas y Vistas
  • Consultas y Modificación de Datos
  • Consultas con múltiples tablas: JOINs
  • Optimizando el acceso a los datos mediante índices
  • Integridad de los Datos
  • Implementación de la lógica de negocios: Procedimientos almacenados
  • Implementación de Desencadenadores
  • Ampliando la lógica de negocios: Funciones definidas por el usuario
  • Proceso Orientado a Registros: Usando Cursores
  • Administración de Transacciones y Bloqueos

Si te interesa, échale un vistazo (en ambas plataformas se puede obtener una vista previa gratuita) y si te gusta te animo a comprarlo. Estoy seguro que te servirá y te ayudará en tu día a día en la administración y programación de SQL Server ™.

Comprar en Amazon
SQL Server 2014 | Amazon Kindle
Comprar en Google Play
SQL Server 2014 | Google Play Books