导出存储过程结果以使用列名称

我附上存储过程输出到Excel表格的代码。

但我有几个问题,他们是

(1)所有的列显示在Excel表格的第一列…我不需要,我需要显示报告在比较列..如何做到这一点..

(2)如果我使用内部连接与主,我怎样才能得到另一个表的列名

任何人都可以请帮我解决上述问题?

alter procedure proc_generate_excel_with_columns ( @db_name varchar(100), @schm_name varchar(100), @table_name varchar(100), @file_name varchar(100) ) as --Generate column names as a recordset declare @columns varchar(8000), @sql varchar(8000), @data_file varchar(100) select @columns = coalesce(@columns+',', '') + column_name + ' as ' + column_name from information_schema.columns where table_name = @table_name select @columns = '''' + replace(replace(@columns, ' as ', ''' as '),',',',''') --Create a dummy file to have actual data select @data_file = substring(@file_name, 1, len(@file_name) - charindex('\', reverse(@file_name))) + '\data_file.xls' --Generate column names in the passed EXCEL file set @sql='bcp " select * from (select ' + @columns + ') as t" queryout c:\test.xls -c -t, -T -S ' + @@servername exec master..xp_cmdshell @sql --Generate data in the dummy file set @sql = 'bcp "select * from st..VEN_FULLREPORTMASTER where entry_date = convert(varchar, getdate() - 3, 105) " queryout c:\data_file.xls -c -t, -T -S' + @@servername -- exec master..xp_cmdshell @sql -- Copy dummy file to passed EXCEL file set @sql = 'exec master..xp_cmdshell ''type '+@data_file+' >> "'+@file_name+'"''' exec(@sql) ----Delete dummy file set @sql = 'exec master..xp_cmdshell ''del ' + @data_file + '''' exec(@sql)