Как добавить оператор множественного выбора одной командой bcp в SQL Server - PullRequest
1 голос
/ 15 мая 2019

У меня есть команда bcp для создания файла со столбцами и заголовками. Мне нужно добавить метку времени вверху файла и Ctrl C в конце. Как мне этого добиться?

Это прекрасно работает с запросами, имеющими union all.

DECLARE @Query VARCHAR(5000) ='select ''Col1'', ''Col2'', ''Col3'' union all select col1, col2, col3 from TestTable ' 
DECLARE @cmd1 VARCHAR(5000)='bcp "' + @Query +'" queryout "' +  @File + '" -c -T' 

Я пытался поместить их в несколько запросов и объединить их в один запрос

Это то, что я пытался

DECLARE @Query1 VARCHAR(5000)='Select Getdate();'
DECLARE @NewLineChar AS CHAR(2) = CHAR(13) + CHAR(10)
DECLARE @Query2 VARCHAR(5000) ='select ''Col1'', ''Col2'', ''Col3'' union all select col1, col2, col3 from TestTable '
DECLARE @Query VARCHAR(5000)=@Query1 + @NewLineChar + @Query2 
DECLARE @cmd1 VARCHAR(5000)='bcp "' + @Query +'" queryout "' +  @File + '" -c -T' 

Выходной файл должен быть таким

12/14/18 17:10

Col1 Col2 Col3
1      2   3  
4      5   6
^C

1 Ответ

0 голосов
/ 15 мая 2019

Простым способом будет создать представление с заголовком и данными (unionall) и запросить представление в вашем BCP

...