Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Експортирайте таблица във файл със заглавки на колони (имена на колони) с помощта на помощната програма bcp и SQL Server 2008

Този метод автоматично извежда имена на колони с вашите данни за редове чрез BCP.

Скриптът записва един файл за заглавките на колоните (чете се от INFORMATION_SCHEMA.COLUMNS таблица) след това добавя друг файл с данните от таблицата.

Крайният изход се комбинира в TableData.csv който има данни за заглавки и редове. Просто заменете променливите на средата в горната част, за да посочите името на сървъра, базата данни и таблицата.

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

Имайте предвид, че ако трябва да предоставите идентификационни данни, заменете опцията -T с -U my_username -P my_password

Този метод има предимството, че винаги има синхронизиране на имената на колоните с таблицата чрез INFORMATION_SCHEMA.COLUMNS . Недостатъкът е, че създава временни файлове. Microsoft наистина трябва да поправи помощната програма bcp, за да поддържа това.

Това решение използва трика за конкатенация на SQL редове от тук, комбиниран с идеи за bcp от тук



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Показване на датата на следващото събитие

  2. Инструкцията ALTER TABLE е в конфликт с ограничението FOREIGN KEY

  3. Трябва ли MAMP да върне ::1 като IP на localhost?

  4. SQL Server - липса на НАТУРАЛНО ПРИСЪЕДИНЯВАНЕ / x JOIN y ИЗПОЛЗВАНЕ(поле)

  5. Изключване на колона с помощта на SELECT * [освен колонаA] FROM tableA?