Prepararse para importar datos de forma masiva (SQL Server)

Se aplica a: SQL Server

Puede usar el comando bcp , la instrucción BULK INSERT o la función OPENROWSET(BULK) para la importación masiva de datos solo desde un archivo de datos.

Nota:

Es posible escribir una aplicación personalizada que importe de forma masiva datos desde objetos que no sean un archivo de texto. Para realizar la importación en bloque de datos desde búferes de memoria, use las extensiones de bcp a la interfaz de programación de aplicaciones (API) SQL Server Native Client (ODBC) o la interfaz IRowsetFastLoad de OLE DB. Para realizar la importación en bloque de datos desde una tabla de datos de C#, use la API de copia masiva de ADO.NET, SqlBulkCopy.

Nota:

No se admite la importación masiva de datos en una tabla remota.

Use las siguientes directrices cuando importe en bloque datos de un archivo de datos a una instancia de Microsoft SQL Server:

  • Obtenga los permisos necesarios para la cuenta de usuario.

    La cuenta de usuario en que use la utilidad bcp , la instrucción BULK INSERT o la instrucción INSERT ... SELECT * FROM OPENROWSET(BULK...) debe tener los permisos necesarios sobre la tabla, que son asignados por el propietario de la tabla. Para obtener más información sobre los permisos necesarios en cada método, vea bcp (utilidad), OPENROWSET (Transact-SQL);, y BULK INSERT (Transact-SQL);.

  • Use el modelo de recuperación optimizado para cargas masivas de registros.

    Esta indicación es para bases de datos que utilizan el modelo de recuperación completa. El modelo de recuperación optimizado para cargas masivas de registros resulta útil al realizar operaciones masivas en una tabla sin indexar (un montón). El uso de la recuperación por medio de registros de operaciones masivas ayuda a evitar que el registro de transacciones se quede sin espacio, ya que este tipo de recuperación no realiza la inserción de filas del registro. Para obtener más información sobre el modelo de recuperación optimizado para cargas masivas de registros, vea Modelos de recuperación (SQL Server);.

    Se recomienda cambiar la base de datos para que use el modelo de recuperación optimizado para cargas masivas de registros inmediatamente antes de la operación de importación masiva. Inmediatamente después, debe restablecer la base de datos al modelo de recuperación completa. Para obtener más información, vea Ver o cambiar el modelo de recuperación de una base de datos (SQL Server);.

    Nota:

    más información sobre cómo minimizar el registro durante las operaciones de importación en bloque, vea Requisitos previos para el registro mínimo durante la importación en bloque.

  • Realice una copia de seguridad después de la importación masiva de datos.

    Para una base de datos que utilice el modelo de recuperación simple, se recomienda realizar una copia de seguridad completa o diferencial cuando finalice la operación de importación masiva. Para obtener más información, vea Crear una copia de seguridad completa de una base de datos (SQL Server); o Crear una copia de seguridad diferencial de una base de datos (SQL Server).

    Si se utiliza el modelo de recuperación optimizado para cargas masivas de registros o de recuperación completa, basta con una copia de seguridad de registros. Para obtener más información, consulte Copias de seguridad del registro de transacciones (SQL Server).

  • Elimine los índices de las tablas para mejorar el rendimiento de las importaciones masivas de gran tamaño.

    Esta indicación es adecuada cuando vaya a importar una gran cantidad de datos en comparación con la cantidad de datos que ya tiene la tabla. En este caso, la eliminación de los índices de la tabla antes de realizar la operación de importación masiva puede aumentar el rendimiento considerablemente.

    Nota:

    Sin embargo, si va a cargar una cantidad pequeña de datos en comparición con la cantidad de datos ya incluidos en la tabla, quitar los índices es contraproducente. El tiempo necesario para volver a crear los índices puede ser mayor que el tiempo que se ahorra durante la operación de importación masiva.

  • Busque y quite los caracteres ocultos del archivo de datos.

    Muchas herramientas y editores de texto muestran los caracteres ocultos que suelen encontrarse al final del archivo de datos. Durante una operación de importación masiva, los caracteres ocultos en un archivo de datos ASCII pueden producir problemas que den como resultado un error de tipo "se encontró un valor nulo inesperado". La búsqueda y eliminación de todos los caracteres ocultos debería solucionar el problema.

Consulte también

Importar y exportar datos de forma masiva con la utilidad bcp (SQL Server)
Importación en bloque de datos mediante las instrucciones BULK INSERT o OPENROWSET(BULK...) (SQL Server)
bcp (utilidad)
BULK INSERT (Transact-SQL)
Formatos de datos para importación o exportación masivas (SQL Server)
OPENROWSET (Transact-SQL)