Importar e exportar datos de SQL Server desde a liña de comandos con Bcp

Bcp é o xeito máis rápido de obter datos nunha base de datos

O comando de copia masiva (bcp) de Microsoft SQL Server ofrécelle a capacidade de inserir grandes números de rexistros directamente desde a liña de comandos. Ademais de ser unha ferramenta útil para os afeccionados á liña de comandos, a utilidade bcp é unha ferramenta poderosa para aqueles que buscan inserir datos nunha base de datos de SQL Server desde un ficheiro por lotes ou outro método programático. Hai moitas formas de obter datos nunha base de datos, pero o bcp é o máis rápido cando está configurado cos parámetros correctos.

sintaxe bcp

A sintaxe básica para usar bcp é a seguinte:

bcp

onde os argumentos toman os seguintes valores:

Exemplo de importación bcp

Para colocar isto en conxunto, imaxine que ten unha táboa de froitos na base de datos de inventario e que quere importar todos os rexistros dun ficheiro de texto almacenado no seu disco ríxido nesa base de datos. Usarías a seguinte sintaxe do comando bcp:

bcp inventory.dbo.fruits en "C: \ fruit \ inventory.txt" -c -T

Isto produce a seguinte saída:

C: \> bcp inventory.dbo.fruits en "C: \ fruit \ inventory.txt" -c -T Comezando a copia ... 36 filas copiadas. Tamaño do paquete de rede (bytes): 4096 Tempo de reloxo (ms.) Total: 16 Media: (2250.00 liñas por segundo) C: \>

Pode ter notado dúas novas opcións nesa liña de comandos. A opción -c especifica que o formato de ficheiro do ficheiro de importación terá un texto delimitado por tabulación con cada rexistro nunha nova liña. A opción -T especifica que o bcp debería usar a autenticación de Windows para conectarse á base de datos.

Exemplo de exportación bcp

Pode exportar datos da súa base de datos con bcp cambiando a dirección da operación de "in" a "out." Por exemplo, pode despexar o contido da táboa de froitas nun ficheiro de texto co seguinte comando:

bcp inventory.dbo.fruits out "C: \ fruit \ inventory.txt" -c -T

Vexa como se ve na liña de comandos:

C: \> bcp inventory.dbo.fruits out "C: \ fruit \ inventory.txt" -c -T Comezando a copia ... 42 filas copiadas. Tamaño do paquete de rede (bytes): 4096 Tempo de reloxo (ms.) Total: 1 Promedio: (42000.00 liñas por segundo) C: \>

Isto é todo ao comando bcp. Pode usar este comando desde os ficheiros por lotes ou outros programas con acceso á liña de comando DOS para automatizar a importación e exportación de datos desde a súa base de datos SQL Server.