Deze methode voert automatisch kolomnamen uit met uw rijgegevens met behulp van BCP.
Het script schrijft één bestand voor de kolomkoppen (lees uit INFORMATION_SCHEMA.COLUMNS
table) voegt vervolgens een ander bestand toe met de tabelgegevens.
De uiteindelijke uitvoer wordt gecombineerd in TableData.csv
die de koppen en rijgegevens heeft. Vervang gewoon de omgevingsvariabelen bovenaan om de server-, database- en tabelnaam op te geven.
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
Merk op dat als u inloggegevens moet opgeven, de optie -T moet worden vervangen door -U my_username -P my_password
Deze methode heeft het voordeel dat de kolomnamen altijd gesynchroniseerd zijn met de tabel door gebruik te maken van INFORMATION_SCHEMA.COLUMNS
. Het nadeel is dat het tijdelijke bestanden maakt. Microsoft zou het bcp-hulpprogramma echt moeten repareren om dit te ondersteunen.
Deze oplossing gebruikt de SQL rij-aaneenschakelingstruc van hier gecombineerd met bcp-ideeën van hier