10 marzo 2015

Tarea Transfer SQL Server Objects

La transferencia de objetos de base de datos SQL y datos entre bases de datos es a menudo necesaria en el mundo real. Por ejemplo, algunos escenarios podrían ser la creación de un entorno de base de datos, junto con varios entornos, como el de desarrollo, de prueba y de producción; y, por ejemplo, para crear tablas temporales para ayudar al proceso de ETL.
Este ejercicio demuestra cómo podemos simplemente transferir todos los objetos de base de datos y los datos entre el caso de ejemplo Adventure Works y una nueva y vacía base de datos creada para este ejercicio.

Alistándose

Para alistarse para este ejercicio, utilice los siguientes pasos:
1.    Abra el SQL Server Management Studio (SSMS) y conéctese a SQL Server.
2.    Crear una base de datos temporal y vacía a la cual transferir objetos de SQL de la base de datos AdventureWorksLT2012.
3.    En la carpeta de base de datos, pulse Nueva Base de Datos....
4.    Proporcionar un nombre para la nueva base de datos (AdventureWorksLT2012_DEV), asegúrese que las dos bases de datos tengan el mismo collation  y mantenga las propiedades restantes como las predeterminadas.
5.    Abra SQL Server Data Tools (SSDT) y cree un nuevo proyecto SSIS.
6.    Proporcionar un nombre (por ejemplo TareaTransferSSO) y una ubicación para el proyecto SSIS y proceder.
7.    Seleccione el paquete creado por defecto y renómbrelo a: TransferSQLObjects.dtsx.

Ejercicio

La tarea utilizada en este ejercicio es la Transfer SQL Server Objects Task y tiene un diseño muy intuitivo para transferir rápidamente objetos como Tablas, Vistas, Procedimientos Almacenados, Funciones Definidas por el Usuario, y Tipos de Datos Definidos por el Usuario entre las bases de datos. Esta tarea hace uso de la SQL Server Management Objects (SMO), que no es más que una colección de objetos que están diseñados para la programación de todos los aspectos de la gestión de Microsoft SQL Server. Luego se muestra una lista de los pasos más importantes que se deben seguir para utilizar esta tarea:
1.    Crear una nueva conexión SMO al SQL Server que tiene la base de datos de origen y también la nueva base de datos creada antes. Si estas bases de datos están localizadas en diferentes servidores, otra conexión debe ser creada.
2.    En el Connection Managers haga clic derecho para agregar una New Connection….
3.    En la ventana emergente Add SSIS Connection Manager, busque el tipo de conexión SMOServer en la lista y haga clic en el botón Add....
4.    En el SMO Connection Manager Editor añadir el nombre del servidor a la propiedad Server name.
5.    Pruebe la conexión y si tiene éxito pulse OK.
6.    Añadir un Transfer SQL Server Objects Task al Control Flow a fin de transferir objetos de SQL y datos entre dos bases de datos.
7.    Desde el Toolbox SSIS, arrastre y suelte un Transfer SQL Server Objects Task al diseñador y ábralo para editarlo.
8.    En el grupo Connection en la pestaña Objects, seleccione la conexión de origen y destino y la base de datos.
9.    Una vez establecidas las conexiones el escenario de destino debe estar configurado. Resaltadas en la imagen de abajo están las propiedades más utilizadas de esta tarea.
10.  Establecer los parámetros CopyAllObjects, CopyPrimaryKeys y CopyForeignKeys como True y mantener las propiedades restantes como las predeterminadas.
11.  Cierre el editor pulsando el botón OK.
12.  Ejecutar el paquete presionando F5. Si la ejecución es satisfactoria, la nueva base de datos AdventureWorksLT_DEV debería tener todos los objetos creados.
 
13.  Editar la tarea de nuevo y cambiar sus configuraciones. Esta vez, insertar datos en el destino.
14.  Ejecutar el paquete de nuevo presionando F5. Si la ejecución es satisfactoria, la nueva base de datos AdventureWorksLT_DEV también debería tener los datos.
Cómo Funciona...
Hay muchos escenarios donde necesitamos transferir objetos como tablas de bases de datos, vistas, procedimientos almacenados, funciones, datos, logins y otros objetos SQL Server entre dos bases de datos. SSIS proporciona un conjunto de tareas Transfer para proporcionar toda esta funcionalidad entre dos SQL Servers:
·         Transfer Database Task
·         Transfer Error Messages Task
·         Transfer Jobs Task
·         Transfer Master Stored Procedures Task
·         Transfer Logins Task

2 comentarios:

Narcizo dijo...

Esta tarea Control Flow, nos permite transferir todo tipo de objetos entre instancias de BD. Espero les sirva.

Félix Saavedra dijo...

Justo lo que necesitaba, gracias!