
February 16, 2012 21:05 by
btsguy
alter procedure usp_Export2ExcelVS
(
@db_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
from
information_schema.columns
where
table_name=@table_name
select @columns = '''''' + replace(@columns,',',''''',''''') + ''''''
print @columns
--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'
print @data_file
--Generate column names in the passed EXCEL file
set @sql='exec master..xp_cmdshell ''bcp " select '+@columns+' as t" queryout "'+@file_name+'" -c -T -S "<server>"'''
exec(@sql)
--Generate data in the dummy file
set @sql='exec master..xp_cmdshell ''bcp "select * from '+@db_name+'..'+@table_name+'" queryout "'+@data_file+'" -c -T -S "<server>"'''
exec(@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)
GO
/*
exec usp_Export2ExcelVS 'Northwind','OrderHistory','c:\temp\excel.xlsx'
*/
d87948d2-1083-4c75-9fd3-fefca8c6d5b5|0|.0

February 16, 2012 16:26 by
btsguy
ebf88298-3071-4614-9618-4bb6c554dd0f|0|.0

February 14, 2012 18:26 by
btsguy
8558d372-2005-4757-8e72-b876a3393b7a|0|.0

February 8, 2012 20:38 by
btsguy
57ab8aea-ecb8-4194-a54c-65e742926b98|0|.0

February 7, 2012 21:52 by
btsguy
e7416b78-80ef-44a5-81e3-869def199674|0|.0

February 7, 2012 21:47 by
btsguy
d0d16d46-e9b6-46c3-a46e-7bdd237694c0|0|.0

February 7, 2012 21:46 by
btsguy
f12a459c-8712-49c0-b2c8-a07364c6fe62|0|.0

February 2, 2012 16:54 by
btsguy
3244155a-c1c2-403f-a617-1b69281b2b18|0|.0

February 2, 2012 16:32 by
btsguy
e8be9af4-81b1-44b0-a151-88a1dc3d5291|0|.0