An Avanade Blogging Community

Welcome to An Avanade Blogging Community Sign in | Join | Help
in Search

El Bruno

[VSTE4DB] Incluyendo scripts para inicializar tablas con datos

Buenas

si trabajar con proyectos de bases de datos con Visual Studio Team Edition for Database Professionals, y has probado las opciones de deploy de este tipo de proyectos, seguramente habrás tenido la necesidad de inicializar algunas tablas con datos, luego de crear la base de datos en el Deploy. Pues bien, una de las formas de realizar esta acción es uitilizar los Data Generation Plans incluidos en cada proyecto, pero tal vez si ya tienes tu base de datos con datos de ejemplo, te interese replicar los mismos.

El siguiente tutorial demuestra como crear un proyecto de BD utilizando AdventureWorks y como generar un deploy del mismo con parte de los datos de ejemplo.

 

Tutorial

 

1. Crear un nuevo proyecto de base de datos para Microsoft SQL Server 2005 llamado AdventureWorksDeploy.

2. Importar el Schema de AdventureWorks, deplegando el menu contextual sobre el proyecto y seleccionado Import Database Schema.

3. Crear una nueva conexión hacia AdventureWorks e importar el Schema.

4. Desde las propiedades del proyecto, configurar la base de datos de destino para el Deploy. En este caso lo haré sobre mi servidor local y sobre una nueva base de datos llamada AdventureWorksDeploy. Además debemos marcar la opción Always re-create database.

 

5. Una vez configurada la base de datos de deploy realizamos un deploy para que la misma se cree con las tablas vacías, desplegando el menú contextual sobre el proyecto y seleccionando la opción Deploy. Verificamos que en el servidor de datos se haya creado una nueva base datos: AdventureWorksDeploy.

6. Lanzamos el comparador de datos desde el menu Data // Data Compare // New Data Comparison, seleccionando AdventureWorks y AdventureWorksDeploy como bases de datos para comparar.

7. Sunpogamos que solo queremos insertar los datos de la tabla Production.ProductModel, seleccionamos la misma y seleccionamos la opcion Export to Editor.

 

 

8. La comparación de datos ha creado un script para la generación de datos, que entre otras cosas deshabilita las claves y relaciones de las tablas, deshabilita los Identity para la insercion de datos, serializa los campos binarios a base64, etc.

9. Dentro del proyecto crearemos una nueva carpeta llamada SampleData.

10 . Dentro de esta carpeta agregamos un nuevo sql script llamado Production.sql. Copiamos el contenido del script para la generación de datos dentro de este archivo y lo grabamos.

11. Editamos el archivo \Scripts\Post-Deployment\Script.PostDeployment.sql y agregamos la siguiente instrucción al final del mismo:

:r ..\..\SampleData\Production.sql

esta instrucción incluye el archivo Production.sql en la ejecución del PostDeploy script.

13. Nuestro archivo debe quedar con el siguiente contenido o similar:

/* Post-Deployment Script Template -------------------------------------------------------------------------------------- This file contains SQL statements that will be appended to the build script Use SQLCMD syntax to include a file into the post-deployment script Example: :r .\filename.sql Use SQLCMD syntax to reference a variable in the post-deployment script Example: :setvar TableName MyTable SELECT * FROM [$(TableName)] -------------------------------------------------------------------------------------- */ :r .\Permissions.sql :r .\RoleMemberships.sql :r .\RulesAndDefaults.sql :r .\DatabaseObjectOptions.sql :r .\Signatures.sql -- ================================= -- ADD SAMPLE DATA -- ================================= :r ..\..\SampleData\Production.sql

14. A continuación realizamos un nuevo deploy de la base de datos y veremos que en la base de datos creada AdventureWorksDeploy en la tabla Production.ProductModel están los datos de ejemplo.

 

Conclusión

Las herramientas que posee Visual Studio Team Edition for Database Professionals nos permiten crear y desplegar muy fácilmente bases de datos SQL Server. Siguiendo los pasos del tutorial podemos agregar más tablas en la comparación y generar un script para la inserción de datos, o tal vez generar varios scripts para la inserción de datos separando los mismos por algún criterio en particular. Por ejemplo:

 

Descarga del proyecto de ejemplo (gracias geeks.ms)

SkyDrive

 

Saludos @ Home &  happy db deploying

El Bruno

Crossposting from ElBruno.com
Published Wednesday, September 19, 2007 11:28 PM by elbruno
Filed Under: ,

Comments

No Comments
Anonymous comments are disabled