Archivo de exportación incremental de SQL Server BCP.
Estoy intentando utilizar BCP para exportar mis datos a un archivo .TXT, pero necesito realizar una exportación incremental en el mismo archivo, ya que necesitaré exportar datos de dos vistas.
Ejemplo:
SET @cmd = '"SELECT * FROM Site"'
SELECT @sql = 'bcp '+@cmd+' queryout D:\mytest.txt -c -t; -T -S SERVER-PC\SQLEXPRESS';
EXEC xp_cmdshell @sql;
SET @cmd = '"SELECT * FROM Customers"'
SELECT @sql = 'bcp '+@cmd+' queryout D:\mytest.txt -c -t; -T -S SERVER-PC\SQLEXPRESS';
EXEC xp_cmdshell @sql;
Salida de datos:
H;04399024100427;20160620
V;04399024100427;CLIENTE I;ESTADO;CIUDAD;NOMBRE;75123390;A
Pensé en utilizar UNION ALL, pero la estructura de las tablas es diferente y tengo casos en los que necesitaré exportar datos de hasta 5 tablas.
davy.ai
Para realizar una exportación incremental de datos desde múltiples vistas en el mismo archivo utilizando BCP, puedes modificar el comando para utilizar la opción
-a
, la cual agrega datos al archivo existente en lugar de sobrescribirlo. Aquí tienes un ejemplo:Nota la adición de la opción
-a
, la cual indica a BCP que añada al archivo existente en lugar de crear uno nuevo. De esta manera, los datos de cada vista serán agregados al mismo archivo.En cuanto a la exportación de datos desde tablas con estructuras diferentes, puedes utilizar la declaración SELECT para hacer coincidir los nombres y el orden de las columnas entre las tablas. Por ejemplo:
En este ejemplo, la primera declaración SELECT exporta datos desde una tabla con las columnas ID, Name y Address. La segunda declaración SELECT exporta datos desde una tabla con las columnas CustomerID, CustomerName y AddressLine1, pero utiliza alias para asegurar que los nombres y el orden de las columnas coincidan con la primera tabla. Puedes repetir este proceso para un máximo de 5 tablas según sea necesario.