Stored Procedure
Tengo que importar varios archivo de texto ascii que no están delimitados de ninguna forma (cada campo tiene loguitud fija) y cargarlos a tablas en sql server. Esto debe hacerse de forma automática.
1 respuesta
Respuesta de denciso
1
1
denciso, Soy una persona multifacética, tanto manejo la informática,...
Puedes generar un DTS, algo como lo siguiente:
Tareas DTS
Normalmente, los paquetes de Servicios de transformación de datos (DTS, Data Transformation Services) incluyen una o más tareas DTS. Cada tarea define un elemento de trabajo que se ejecutará como parte del proceso de transferencia y transformación de los datos.
Microsoft® SQL ServerT 2000 proporciona varias tareas DTS que forman parte del modelo de objetos DTS. Se tiene acceso a estas tareas desde el Diseñador DTS (excepto a la tarea Bombeo paralelo de datos, a la que sólo se tiene acceso mediante programación). Puede utilizarlas para:
Transformar datos. Por ejemplo, puede usar la tarea Transformar datos para copiar datos, asignar una gran variedad de transformaciones a los datos y personalizar las transformaciones con una secuencia de comandos Microsoft ActiveX®.
Para obtener más información, consulte Tarea de consulta controlada por datos, Tarea Transformar datos y ParallelDataPump Task Object.
Copiar y administrar datos. Por ejemplo, puede eliminar una tabla, volver a crearla y llenarla, y ejecutar una serie de consultas con los datos que contenga. También puede generar un conjunto de registros de Microsoft ActiveX Data Objects (ADO) desconectado, que podrá llamar y manipular desde otros pasos del paquete.
Para obtener más información, consulte Tarea Copiar objetos de SQL Server, Tarea de ejecución de SQL, Tarea de inserción masiva y Tareas para transferir objetos de bases de datos.
Ejecutar tareas como trabajos desde un paquete. Por ejemplo, puede usar la tarea de Ejecución de proceso para ejecutar una aplicación personalizada programada en Microsoft Visual Basic® que obtenga y agregue datos diariamente. Después, puede ejecutar una tarea Ejecutar paquete para ejecutar un segundo paquete que importe y transforme los datos generados por la aplicación programada en Visual Basic. También puede usar la tarea Enviar correo para enviar un mensaje de correo electrónico al administrador del sistema e indicarle si se realizó correctamente o no un paso del paquete.
Para obtener más información, consulte Tarea de secuencia de comandos ActiveX, Tarea Propiedades dinámicas, Tarea Ejecutar paquete, Tarea Protocolo de transferencia de archivos, Tarea de ejecución de proceso y Tarea Enviar correo.
Además, puede crear tareas personalizadas mediante lenguajes de programación compatibles con COM (por ejemplo, Visual Basic). Puede crear una interfaz de usuario para una tarea personalizada, con su propio icono, si desea tener acceso a la misma en el Diseñador DTS. Para obtener más información, consulte DTS Custom Task.
Agregar y configurar tareas
Un paquete DTS puede contener una única tarea (por ejemplo, una tarea de secuencia de comandos ActiveX que muestra un cuadro de mensaje al ejecutar el paquete). Sin embargo, un paquete suele contener varias tareas, conexiones y restricciones del flujo de trabajo, y cada conjunto de tareas se ejecuta en el contexto de un flujo de trabajo ordenado de paquetes. Puede incluir en un paquete múltiples tareas del mismo tipo (por ejemplo, seis tareas de ejecución de SQL), cada una configurada de distinto modo.
Puede agregar tareas a un paquete y establecer sus propiedades de las formas siguientes:
Gráficamente, mediante el Diseñador DTS.
Con programación, mediante el modelo de objetos DTS para crear un paquete en Visual Basic o Microsoft Visual C++®. Para obtener más información, consulte Programming DTS Applications.
Para agregar una tarea DTS a un paquete DTS
Administrador corporativo
Cómo agregar una tarea DTS a un paquete DTS (Administrador corporativo)
Para agregar una tarea DTS a un paquete DTS en el Diseñador DTS
Arrastre la tarea desde la barra de herramientas Tarea hasta la hoja de diseño de Servicios de transformación de datos (DTS).
Véase también
Tareas DTS
Tarea de inserción masiva
La tarea de inserción masiva proporciona la forma más rápida de copiar grandes cantidades de datos a una tabla o vista de Microsoft® SQL ServerT. Para asegurar una transferencia de datos de alta velocidad, no se permite la aplicación de transformaciones a los datos mientras se transfieren desde el archivo de origen a la tabla o la vista.
Por ejemplo, suponga que su empresa mantiene una lista de productos de un millón de filas en un gran sistema. El sistema de comercio electrónico utiliza SQL Server 2000 para llenar páginas Web. Tiene que actualizar la tabla de productos todas las noches con la lista de productos maestra del gran sistema. Para ello, debe guardar la lista de productos con un formato delimitado por tabuladores y utilizar la tarea de inserción masiva para copiar los datos directamente a la tabla de SQL Server. Ahora la tabla contendrá los datos actualizados de los productos.
Configurar la tarea de inserción masiva
La tarea de inserción masiva encapsula una instrucción BULK INSERT de Transact-SQL que se ejecuta durante la ejecución de la tarea. Puede establecer los parámetros de la instrucción BULK INSERT en el cuadro de diálogo Propiedades de la tarea de inserción masiva del Diseñador de Servicios de transformación de datos (DTS). A los parámetros de BULK INSERT que no estén disponibles gráficamente se les asignarán sus valores predeterminados. Si tiene que establecer parámetros que no están disponibles gráficamente, puede utilizar el objeto BulkInsertTask o la herramienta bcp para establecerlos mediante programación.
Utilizar la tarea de inserción masiva en las transacciones
Si no se ha establecido un tamaño de lote, una operación de copia masiva completa se considera como una transacción. Si se ha establecido un tamaño de lote, cada lote constituye una transacción que será confirmada cuando finalice el lote.
El comportamiento de la tarea de inserción masiva depende de si la tarea está combinada con la transacción de paquete. Si la tarea de inserción masiva no está combinada con la transacción de paquete, se confirmará cada lote sin errores, como una unidad, antes de procesar el siguiente lote. Si se combina la tarea de inserción masiva con la transacción de paquete, los lotes sin errores permanecerán en la transacción tras la finalización de la tarea. Estos lotes están sujetos a las operaciones para confirmar o deshacer del paso o el paquete.
Los errores de la tarea de inserción masiva no deshacen automáticamente los lotes cargados; tampoco se confirman automáticamente si la tarea se realiza de forma correcta. Sólo se realizan operaciones para confirmar o deshacer en respuesta a valores de propiedades de un paquete y un flujo de trabajo. Para obtener más información, consulte Conceptos básicos de las transacciones DTS.
Consideraciones de uso
Antes de utilizar la tarea de inserción masiva, tenga en cuenta que:
Esta tarea sólo puede transferir datos entre un archivo de texto y una tabla o una vista de SQL Server. Para transferir datos desde un sistema de administración de bases de datos (DBMS), debe exportarlos desde el programa de origen a un archivo de datos y después importarlos desde el archivo de datos a una tabla o una vista de SQL Server.
El destino de los datos debe ser una tabla o una vista creada en SQL Server. Si la tabla o la vista de destino ya contiene datos, se anexarán los nuevos datos cuando se ejecute la tarea de inserción masiva.
Puede utilizar un archivo de formato en el objeto tarea de inserción masiva. Si tiene un archivo de formato creado con la utilidad bcp, puede especificar la ruta de acceso en la tarea de inserción masiva. La ruta de acceso indicada debe ser relativa al servidor. Para obtener más información acerca del formato de los archivos, consulte Usar archivos de formato.
Especificar el origen y el destino
Al especificar la ruta de acceso del archivo de texto de origen, tenga en cuenta que:
Cuando se ejecute la tarea de inserción masiva, sólo podrán ejecutar el paquete los miembros de la función de servidor fija sysadmin.
Independientemente de la ubicación del archivo, el servidor debe tener permisos para el archivo y la base de datos de destino.
El servidor ejecutará la tarea de inserción masiva. Por tanto, la ruta de acceso indicada debe ser relativa al servidor.
Optimizar el rendimiento
Para optimizar el rendimiento, tenga en cuenta que:
Si el archivo de texto está en el mismo equipo que ejecuta la instancia de SQL Server, la operación de copia será aún más rápida, ya que no es necesario transferir los datos a través de la red.
La tarea de inserción masiva no registrará las filas que produzcan errores. Si tiene que capturar esta información, puede registrar las filas que producen errores en un archivo de excepciones mediante la tarea Transformar datos. Sin embargo, la escritura de la información de errores en el registro ralentizará la transferencia de datos. Si su prioridad es la velocidad, utilice la tarea de inserción masiva. Si prefiere capturar la información de los errores, utilice la tarea Transformar datos.
Para agregar la tarea de inserción masiva a un paquete DTS
Administrador corporativo
Cómo agregar la tarea de inserción masiva a un paquete DTS (Administrador corporativo)
Para agregar una tarea de inserción masiva a un paquete DTS en el Diseñador DTS
Arrastre una conexión de Proveedor Microsoft®OLE DB para SQL Server desde la barra de herramientas Conexión hasta la hoja de diseño de Servicios de transformación de datos (DTS) y configure la conexión.
Nota La Tarea de inserción masiva requiere una conexión de Proveedor Microsoft OLE DB para SQL Server. Si el paquete tiene configurada una conexión de este tipo, puede omitir el paso 1.
Arrastre una tarea de inserción masiva desde la barra de herramientas Tarea hasta la hoja de diseño.
Véase también
Tarea de inserción masiva
Véase también
BULK INSERT
BulkInsertTask Object
Lo anterior lo puedes conseguir directamente de los libros en línea de sql server 2000, si no los tienes puedes bajarlos de la página de microsoft en la sección de actualizaciones de sql server, son gratis.
Tareas DTS
Normalmente, los paquetes de Servicios de transformación de datos (DTS, Data Transformation Services) incluyen una o más tareas DTS. Cada tarea define un elemento de trabajo que se ejecutará como parte del proceso de transferencia y transformación de los datos.
Microsoft® SQL ServerT 2000 proporciona varias tareas DTS que forman parte del modelo de objetos DTS. Se tiene acceso a estas tareas desde el Diseñador DTS (excepto a la tarea Bombeo paralelo de datos, a la que sólo se tiene acceso mediante programación). Puede utilizarlas para:
Transformar datos. Por ejemplo, puede usar la tarea Transformar datos para copiar datos, asignar una gran variedad de transformaciones a los datos y personalizar las transformaciones con una secuencia de comandos Microsoft ActiveX®.
Para obtener más información, consulte Tarea de consulta controlada por datos, Tarea Transformar datos y ParallelDataPump Task Object.
Copiar y administrar datos. Por ejemplo, puede eliminar una tabla, volver a crearla y llenarla, y ejecutar una serie de consultas con los datos que contenga. También puede generar un conjunto de registros de Microsoft ActiveX Data Objects (ADO) desconectado, que podrá llamar y manipular desde otros pasos del paquete.
Para obtener más información, consulte Tarea Copiar objetos de SQL Server, Tarea de ejecución de SQL, Tarea de inserción masiva y Tareas para transferir objetos de bases de datos.
Ejecutar tareas como trabajos desde un paquete. Por ejemplo, puede usar la tarea de Ejecución de proceso para ejecutar una aplicación personalizada programada en Microsoft Visual Basic® que obtenga y agregue datos diariamente. Después, puede ejecutar una tarea Ejecutar paquete para ejecutar un segundo paquete que importe y transforme los datos generados por la aplicación programada en Visual Basic. También puede usar la tarea Enviar correo para enviar un mensaje de correo electrónico al administrador del sistema e indicarle si se realizó correctamente o no un paso del paquete.
Para obtener más información, consulte Tarea de secuencia de comandos ActiveX, Tarea Propiedades dinámicas, Tarea Ejecutar paquete, Tarea Protocolo de transferencia de archivos, Tarea de ejecución de proceso y Tarea Enviar correo.
Además, puede crear tareas personalizadas mediante lenguajes de programación compatibles con COM (por ejemplo, Visual Basic). Puede crear una interfaz de usuario para una tarea personalizada, con su propio icono, si desea tener acceso a la misma en el Diseñador DTS. Para obtener más información, consulte DTS Custom Task.
Agregar y configurar tareas
Un paquete DTS puede contener una única tarea (por ejemplo, una tarea de secuencia de comandos ActiveX que muestra un cuadro de mensaje al ejecutar el paquete). Sin embargo, un paquete suele contener varias tareas, conexiones y restricciones del flujo de trabajo, y cada conjunto de tareas se ejecuta en el contexto de un flujo de trabajo ordenado de paquetes. Puede incluir en un paquete múltiples tareas del mismo tipo (por ejemplo, seis tareas de ejecución de SQL), cada una configurada de distinto modo.
Puede agregar tareas a un paquete y establecer sus propiedades de las formas siguientes:
Gráficamente, mediante el Diseñador DTS.
Con programación, mediante el modelo de objetos DTS para crear un paquete en Visual Basic o Microsoft Visual C++®. Para obtener más información, consulte Programming DTS Applications.
Para agregar una tarea DTS a un paquete DTS
Administrador corporativo
Cómo agregar una tarea DTS a un paquete DTS (Administrador corporativo)
Para agregar una tarea DTS a un paquete DTS en el Diseñador DTS
Arrastre la tarea desde la barra de herramientas Tarea hasta la hoja de diseño de Servicios de transformación de datos (DTS).
Véase también
Tareas DTS
Tarea de inserción masiva
La tarea de inserción masiva proporciona la forma más rápida de copiar grandes cantidades de datos a una tabla o vista de Microsoft® SQL ServerT. Para asegurar una transferencia de datos de alta velocidad, no se permite la aplicación de transformaciones a los datos mientras se transfieren desde el archivo de origen a la tabla o la vista.
Por ejemplo, suponga que su empresa mantiene una lista de productos de un millón de filas en un gran sistema. El sistema de comercio electrónico utiliza SQL Server 2000 para llenar páginas Web. Tiene que actualizar la tabla de productos todas las noches con la lista de productos maestra del gran sistema. Para ello, debe guardar la lista de productos con un formato delimitado por tabuladores y utilizar la tarea de inserción masiva para copiar los datos directamente a la tabla de SQL Server. Ahora la tabla contendrá los datos actualizados de los productos.
Configurar la tarea de inserción masiva
La tarea de inserción masiva encapsula una instrucción BULK INSERT de Transact-SQL que se ejecuta durante la ejecución de la tarea. Puede establecer los parámetros de la instrucción BULK INSERT en el cuadro de diálogo Propiedades de la tarea de inserción masiva del Diseñador de Servicios de transformación de datos (DTS). A los parámetros de BULK INSERT que no estén disponibles gráficamente se les asignarán sus valores predeterminados. Si tiene que establecer parámetros que no están disponibles gráficamente, puede utilizar el objeto BulkInsertTask o la herramienta bcp para establecerlos mediante programación.
Utilizar la tarea de inserción masiva en las transacciones
Si no se ha establecido un tamaño de lote, una operación de copia masiva completa se considera como una transacción. Si se ha establecido un tamaño de lote, cada lote constituye una transacción que será confirmada cuando finalice el lote.
El comportamiento de la tarea de inserción masiva depende de si la tarea está combinada con la transacción de paquete. Si la tarea de inserción masiva no está combinada con la transacción de paquete, se confirmará cada lote sin errores, como una unidad, antes de procesar el siguiente lote. Si se combina la tarea de inserción masiva con la transacción de paquete, los lotes sin errores permanecerán en la transacción tras la finalización de la tarea. Estos lotes están sujetos a las operaciones para confirmar o deshacer del paso o el paquete.
Los errores de la tarea de inserción masiva no deshacen automáticamente los lotes cargados; tampoco se confirman automáticamente si la tarea se realiza de forma correcta. Sólo se realizan operaciones para confirmar o deshacer en respuesta a valores de propiedades de un paquete y un flujo de trabajo. Para obtener más información, consulte Conceptos básicos de las transacciones DTS.
Consideraciones de uso
Antes de utilizar la tarea de inserción masiva, tenga en cuenta que:
Esta tarea sólo puede transferir datos entre un archivo de texto y una tabla o una vista de SQL Server. Para transferir datos desde un sistema de administración de bases de datos (DBMS), debe exportarlos desde el programa de origen a un archivo de datos y después importarlos desde el archivo de datos a una tabla o una vista de SQL Server.
El destino de los datos debe ser una tabla o una vista creada en SQL Server. Si la tabla o la vista de destino ya contiene datos, se anexarán los nuevos datos cuando se ejecute la tarea de inserción masiva.
Puede utilizar un archivo de formato en el objeto tarea de inserción masiva. Si tiene un archivo de formato creado con la utilidad bcp, puede especificar la ruta de acceso en la tarea de inserción masiva. La ruta de acceso indicada debe ser relativa al servidor. Para obtener más información acerca del formato de los archivos, consulte Usar archivos de formato.
Especificar el origen y el destino
Al especificar la ruta de acceso del archivo de texto de origen, tenga en cuenta que:
Cuando se ejecute la tarea de inserción masiva, sólo podrán ejecutar el paquete los miembros de la función de servidor fija sysadmin.
Independientemente de la ubicación del archivo, el servidor debe tener permisos para el archivo y la base de datos de destino.
El servidor ejecutará la tarea de inserción masiva. Por tanto, la ruta de acceso indicada debe ser relativa al servidor.
Optimizar el rendimiento
Para optimizar el rendimiento, tenga en cuenta que:
Si el archivo de texto está en el mismo equipo que ejecuta la instancia de SQL Server, la operación de copia será aún más rápida, ya que no es necesario transferir los datos a través de la red.
La tarea de inserción masiva no registrará las filas que produzcan errores. Si tiene que capturar esta información, puede registrar las filas que producen errores en un archivo de excepciones mediante la tarea Transformar datos. Sin embargo, la escritura de la información de errores en el registro ralentizará la transferencia de datos. Si su prioridad es la velocidad, utilice la tarea de inserción masiva. Si prefiere capturar la información de los errores, utilice la tarea Transformar datos.
Para agregar la tarea de inserción masiva a un paquete DTS
Administrador corporativo
Cómo agregar la tarea de inserción masiva a un paquete DTS (Administrador corporativo)
Para agregar una tarea de inserción masiva a un paquete DTS en el Diseñador DTS
Arrastre una conexión de Proveedor Microsoft®OLE DB para SQL Server desde la barra de herramientas Conexión hasta la hoja de diseño de Servicios de transformación de datos (DTS) y configure la conexión.
Nota La Tarea de inserción masiva requiere una conexión de Proveedor Microsoft OLE DB para SQL Server. Si el paquete tiene configurada una conexión de este tipo, puede omitir el paso 1.
Arrastre una tarea de inserción masiva desde la barra de herramientas Tarea hasta la hoja de diseño.
Véase también
Tarea de inserción masiva
Véase también
BULK INSERT
BulkInsertTask Object
Lo anterior lo puedes conseguir directamente de los libros en línea de sql server 2000, si no los tienes puedes bajarlos de la página de microsoft en la sección de actualizaciones de sql server, son gratis.
- Compartir respuesta
- Anónimo
ahora mismo