Denne metode udlæser automatisk kolonnenavne med dine rækkedata ved hjælp af BCP.
Scriptet skriver én fil til kolonneoverskrifterne (læs fra INFORMATION_SCHEMA.COLUMNS
tabel) tilføjer derefter en anden fil med tabeldataene.
Det endelige output kombineres til TableData.csv
som har overskrifter og rækkedata. Bare udskift miljøvariablerne øverst for at angive server-, database- og tabelnavnet.
set BCP_EXPORT_SERVER=put_my_server_name_here
set BCP_EXPORT_DB=put_my_db_name_here
set BCP_EXPORT_TABLE=put_my_table_name_here
BCP "DECLARE @colnames VARCHAR(max);SELECT @colnames = COALESCE(@colnames + ',', '') + column_name from %BCP_EXPORT_DB%.INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='%BCP_EXPORT_TABLE%'; select @colnames;" queryout HeadersOnly.csv -c -T -S%BCP_EXPORT_SERVER%
BCP %BCP_EXPORT_DB%.dbo.%BCP_EXPORT_TABLE% out TableDataWithoutHeaders.csv -c -t, -T -S%BCP_EXPORT_SERVER%
set BCP_EXPORT_SERVER=
set BCP_EXPORT_DB=
set BCP_EXPORT_TABLE=
copy /b HeadersOnly.csv+TableDataWithoutHeaders.csv TableData.csv
del HeadersOnly.csv
del TableDataWithoutHeaders.csv
Bemærk, at hvis du skal angive legitimationsoplysninger, skal du erstatte -T-indstillingen med -U mit_brugernavn -P mit_adgangskode
Denne metode har den fordel, at den altid har kolonnenavnene synkroniseret med tabellen ved at bruge INFORMATION_SCHEMA.COLUMNS
. Ulempen er, at det opretter midlertidige filer. Microsoft burde virkelig rette bcp-værktøjet for at understøtte dette.
Denne løsning bruger SQL-rækkesammenkædningstricket herfra kombineret med bcp-ideer herfra