Preparación de los datos para la exportación o importación en bloque

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

En esta sección se explican las consideraciones implicadas en el planeamiento de operaciones de exportación masiva y los requisitos para operaciones de importación masiva.

Nota

Si no está seguro de cómo dar formato a un archivo de datos para la importación masiva, use la utilidad bcp para exportar datos de la tabla a un archivo de datos. El formato de cada campo de datos de este archivo muestra el formato requerido para la importación masiva de datos en la columna correspondiente de la tabla. Use el mismo formato de los datos para los campos del archivo de datos.

Consideraciones sobre el formato de archivo de datos para la exportación masiva

Antes de realizar una operación de exportación masiva mediante el comando bcp , tenga en cuenta lo siguiente:

  • Cuando se exportan los datos a un archivo, el comando bcp crea el archivo de datos automáticamente mediante el nombre del archivo especificado. Si ese nombre de archivo ya se está usando, los datos que se están copiando masivamente en el archivo de datos sobrescriben el contenido existente del archivo.

  • La exportación masiva desde una tabla o vista a un archivo de datos requiere SELECT permiso en la tabla o vista que se está copiando masivamente.

  • SQL Server puede usar exámenes paralelos para recuperar datos. Por lo tanto, las filas de tabla que se exportan masivamente desde una instancia de SQL Server no se garantiza normalmente que estén en cualquier orden específico en el archivo de datos. Para que las filas de tabla exportadas de forma masiva aparezcan en un orden específico en el archivo de datos, use la opción queryout para exportar de forma masiva desde una consulta y especifique una ORDER BY cláusula .

Requisitos de formato de archivo de datos para la importación masiva

Para importar datos desde un archivo de datos, el archivo debe cumplir los siguientes requisitos básicos:

  • Los datos deben tener un formato de fila y columna.

Nota

La estructura del archivo de datos no necesita ser idéntica a la estructura de la tabla de SQL Server porque las columnas se pueden omitir o reordenar durante el proceso de importación masiva.

  • El contenido del archivo de datos debe tener un formato admitido, como un formato de caracteres o nativo.

  • Los datos pueden estar en formato de caracteres o binario nativo, incluido Unicode.

  • Para importar datos mediante un comando, BULK INSERT una instrucción o INSERT ... SELECT * FROM OPENROWSET(BULK...) una instrucción bcp, la tabla de destino ya debe existir.

  • Cada campo del archivo de datos debe ser compatible con la columna correspondiente de la tabla de destino. Por ejemplo, un campo int no se puede cargar en una columna datetime . Para obtener más información, vea Formatos de datos para importación masiva o exportación masiva (SQL Server) y Especificar formatos de datos de compatibilidad al usar bcp (SQL Server).

    Nota

    Para especificar un subconjunto de filas que se van a importar desde un archivo de datos en lugar de todo el archivo, puede usar un comando bcp con el modificador o -L <last_row> modificador-F <first_row>. Para obtener más información, consulte bcp Utility.

  • Para importar datos de archivos de datos con campos de longitud fija o ancho fijo, use un archivo de formato. Para obtener más información, vea XML, archivos de formato (SQL Server).

  • A partir de SQL Server 2017 (14.x), se puede usar un archivo CSV como archivo de datos para una importación masiva de datos en SQL Server. El terminador de campo de un archivo CSV no tiene que ser una coma. Para poderse utilizar como archivo de datos para la importación masiva, un archivo CSV debe observar las restricciones siguientes:

Además, la importación masiva de datos de un archivo de datos en una tabla tiene los siguientes requisitos:

  • Los usuarios deben tener INSERT permisos y SELECT en la tabla. Los usuarios también necesitan ALTER TABLE permiso cuando usan opciones que requieren operaciones del lenguaje de definición de datos (DDL), como deshabilitar restricciones.

  • Cuando se importan datos de forma masiva mediante BULK INSERT o INSERT ... SELECT * FROM OPENROWSET(BULK...), el archivo de datos debe ser accesible para las operaciones de lectura mediante el perfil de seguridad del proceso de SQL Server (si el usuario inicia sesión con SQL Server inicio de sesión proporcionado) o mediante el inicio de sesión de Microsoft Windows que se usa bajo seguridad delegada. Además, el usuario debe tener ADMINISTER BULK OPERATIONS permiso para leer el archivo.

Nota

La importación masiva en una vista con particiones no está permitida y los intentos de importar datos masivamente en una vista con particiones generarán un error.