# Data Transformation Services

Los Servicios de Transformación de Datos, o DTS, son un conjunto de objetos y utilidades para permitir la automatización de extracción, transformación y carga hacia, o desde, una base de datos. Los objetos son los paquetes DTS y sus componentes, y sus utilidades son llamadas herramientas DTS. DTS estaba incluido en las versiones más antiguas de Microsoft SQL Server, y casi siempre es utilizado con bases de datos SQL, a pesar de que puede ser usado independientemente con otras bases de datos.
DTS permite que los datos puedan ser transformados y cargados desde fuentes heterogéneas usando OLE DB, ODBC o archivos de texto, dentro de cualquier base de datos soportada. DTS también puede automatizar la importación o transformación de datos en forma programada y puede ejecutar funciones adicionales como archivos FTPing y ejecutar programas externos. Adicionalmente, DTS provee un método alternativo de control de versión y respaldo para paquetes cuando se usan en conjunto a una sistema de control de versiones, tal como Microsoft Visual SourceSafe.

## Historia

En SQL Server versión 6.5 y anteriores, los Administradores de base de datos (DBAs) usaban SQL Server Transfer Manager y Programa Bulk Copy, incluido en SQL Server, para transferir datos. Esas herramientas tenían defectos significativos, y muchos DBAs usaban herramientas de terceros como Pervasive Data Integrator para transferir datos en forma más fácil y flexible. Cuando SQL Server 7 fue liberado, "Data Transformation Services" fue empacado junto con él para reemplazar esas herramientas.
SQL Server 2000 expandió la funcionalidad DTS de varias maneras. Introdujo muchos tipos de tareas, incluyendo la habilidad para archivos FTP, mover bases de datos o componentes de bases de datos, y añadir mensajes dentro de Microsoft Message Queue. Paquetes DTS pueden ser grabados como un archivo Visual Basic en SQL Server 2000, y este puede ser expandido para grabar en cualquier lenguaje COM-compliant (cumple con COM). Los paquetes son también integrados dentro de Windows 2000 security, las herramientas DTS fueron hechas para uso más amigable, y las tareas pueden aceptar parámetros de ingreso y salida.
DTS viene con todas las ediciones de SQL Server 7 y 2000, pero fue remplazado por SQL Server Integration Services en el lanzamiento de Microsoft SQL Server 2005.

## Paquetes DTS

El paquete DTS es el componente lógico fundamental de un DTS; cada objeto DTS es un child component de un paquete. Los paquetes son utilizados en cualquier lugar donde se vaya a modificar datos utilizando DTS. Todo el metadata acerca de la transformación de datos está contenida en el paquete. Los paquetes pueden ser grabados directamente en SQL Server, o pueden ser grabados en el Microsoft Repository o en archivos COM. SQL Server 2000 también provee un programador para grabar paquetes en Visual Basic u otro archivo de lenguaje (cuando es grabado en un archivo VB, el paquete es propiamente escrito -- eso es, un VB script es ejecutado para dinámicamente crear objetos del paquete y sus objetos componentes).
Un paquete puede contener cualquier número de connection objects, pero no debe contener ninguno. Esto permite al paquete leer datos desde cualquier origen de datos OLE DB-compliant, y puede ser expandido para manejar otro tipo de datos. The functionality of a package is organized into tasks and steps.
Una Tarea DTS es un conjunto discreto de funcionalidades ejecutadas como un solo paso en un paquete DTS, cada tarea define un elemento de trabajo para ser realizado como parte de el Movimiento de datos y proceso de transformación de datos o como un trabajo a ejecutar.
Data Transformation Services supplies a number of tasks that are part of the DTS object model and that can be accessed graphically through the DTS Designer or accessed programmatically. These tasks, which can be configured individually, cover a wide variety of data copying, data transformation and notification situations. For example, the following types of tasks represent some actions that you can perform by using DTS: executing a single SQL statement, sending an email, and transferring a file with FTP.
A step within a DTS package describes the order in which tasks are run and the precedence constraints that describe what to do in the case of failure. These steps can be executed sequentially or in parallel.
Packages can also contain global variables which can be used throughout the package. SQL Server 2000 allows input and output parameters for tasks, greatly expanding the usefulness of global variables. DTS packages can be edited, password protected, scheduled for execution, and retrieved by version.

## Herramientas DTS

Las herramientas DTS incluidas con SQL Server incluyen, asistentes DTS, diseñadores DTS e interfaces de programación DTS.

### DTS Run Utility

Los paquetes DTS pueden correrse desde la línea de comandos con DTSRUN. Se invoca el comando de la siguiente manera:
| Tipo | typeid |
| Boolean | 11 |
| Currency | 6 |
| Date | 7 |
| Decimal | 14 |
| HRESULT | 25 |
| Int | 22 |
| Integer (1-byte) | 16 |
| Integer (8-byte) | 20 |
| Integer (small) | 2 |
| LPWSTR | 31 |
| Pointer | 26 |
| Real (4-byte) | 4 |
| Real (8-byte) | 5 |
| String | 8 |
| Unsigned int (1-byte) | 17 |
| Unsigned int (2-byte) | 18 |
| Unsigned int (4-byte) | 19 |
| Unsigned int (1-byte) | 21 |
| Unsigned int | 23 |