SQL Server 2008 - use cmd to output with headers to .csv -
i have pretty simple question (and these typically ones spend of time tearing hair out about). using batch file execute .sql queries in same directory batch, , save results various .csv file.
here code:
@echo off  rem check parameters present @if "%1"=="" goto error @if "%2"=="" goto error @if "%3"=="" goto error @if "%4"=="" goto error  rem every *.sql file in folder "." , subfolders (/r), following:  @for /r "." %%f in (*.sql) ( rem print command executed: @echo database : @sqlcmd -s %1 -u %2 -p %3 -d %4 -i -l60 -i "%%f" -o "%%f.output.csv"  -h-1 -s"," -w 1000 -w rem execute command: @sqlcmd -s %1 -u %2 -p %3 -d %4 -i -l60 -i "%%f" -o "%%f.output.csv" -h-1 -s"," -w 1000 -w )  goto :eof  :error  @echo incorrect syntax :  @echo     extract.cmd [servername] [user id] [password] [databasename] @echo    @pause  goto :eof   as test, run following query:
select top(10) [name] sysobjects    which outputs:
sysrscols sysrowsets sysallocunits sysfiles1 syspriorities sysfgfrag sysphfg sysprufiles sysftinds sysowners  (10 rows affected)   this works fine, except 2 things. firstly, need have column headers output well. remove "-h -1" parameter, gives:
name ---- sysrscols sysrowsets sysallocunits sysfiles1 syspriorities sysfgfrag sysphfg sysprufiles sysftinds sysowners  (10 rows affected)   which great except fact don't want horizontal rule "------" between heading , first row of data.
also, don't want "(10 rows affected)" line output.
does know how achieve this?
thanks
 karl
try this:
set nocount on; select     [name]     (select top(10)               2 sortby, [name]               sysobjects            union           select 1, 'name'          ) dt     order [name]   output ssms:
name ---------------------------------------------- name sysallocunits sysfiles1 sysftinds syshobtcolumns syshobts sysowners sysprivs sysrowsetcolumns sysrowsets sysserefs   leave "-h -1" parameter , column headings removed, "name" row still appear in result set first.
Comments
Post a Comment