bcp 实用工具使您得以将 Transact-SQL 语句的结果集复制到数据文件中。该 Transact-SQL 语句可以是任何可返回结果集的有效语句,例如分布式查询或联接多个表的 SELECT 语句。例如,若要将所有作者的姓名从 pubs 数据库的 authors 表复制到 Authors.txt 文件,并按姓氏排序,可在命令提示符下执行以下命令:bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout Authors.txt -c -Sservername -Usa -Ppassword
--------------------------------------
看见了么,
那支蛾子,
正飞向太阳,
那就是我!
--------------------------------------
--------------------------------------
看见了么,
那支蛾子,
正飞向太阳,
那就是我!
--------------------------------------
2、我目前正使用的数据库应用程序做的这方面很不理想,我想重新修改一下,可又不知该怎么做。
我想用ASP.net+C#能帮个忙吗?
但这个方法导出后没有列标题,有办法解决吗?
另外,我对LONGJI的想法很感兴趣,前面我已经提过了,当做一些简单的查询还可以,当我用一些稍复杂些的交叉表查询语句时却怎么也行不通,?????我用的是office xp.
下面是原代码:USE pubs
go
CREATE TABLE abc
( 收费员 varchar(8),
交费方式 varchar(6),
金额 int,
月份 int
)
go
insert into abc values ('张三','现金',200,2)
insert into abc values ('李四','协议',100,2)
insert into abc values ('王五','顶帐',300,4)
insert into abc values ('李四','现金',400,1)
insert into abc values ('王五','现金',200,12)
insert into abc values ('张三','现金',100,1)
insert into abc values ('李四','协议',500,3)
go
select a.收费员,isnull(c.现金,0)现金,isnull(c.顶帐,0)顶帐,isnull(c.协议,0)协议,isnull(现金+顶帐+协议,0) as 本月合计,b.全年合计
into #temp
from (select distinct 收费员 from abc) a left join
(select 收费员,
sum(case 交费方式 when '现金' then 金额 else 0 end ) +
sum(case 交费方式 when '顶帐' then 金额 else 0 end )+
sum(case 交费方式 when '协议' then 金额 else 0 end ) as 全年合计
from abc
group by 收费员) b on a.收费员=b.收费员
left join
(select 收费员,
sum(case 交费方式 when '现金' then 金额 else 0 end ) as 现金,
sum(case 交费方式 when '顶帐' then 金额 else 0 end ) as 顶帐,
sum(case 交费方式 when '协议' then 金额 else 0 end ) as 协议--,
from abc
where 月份=2
group by 收费员) c
on b.收费员=c.收费员
select * from #temp
union
select '总计',sum(现金),sum(顶帐),sum(协议),sum(本月合计),sum(全年合计) from #temp
drop table #temp
set @sql='select * from ltstamp..bin_mst'
set @sql= ' bcp "'+@sql++'" queryout d:\123.txt -c -Sjoygxd -Usa -P666666 '
print @sql
exec master..xp_cmdshell @sql我试了可以
这个方法导出后没有列标题,有办法解决吗?
@服务器名 varchar(255),
@库名 varchar(255),
@表名 varchar(255),
@用户名 varchar(100),
@密码 varchar(100),
@路径及文件名 varchar(255)
as
declare @temp1 nvarchar(4000),@temp2 varchar(8000)set @temp1='select @value1='''',@value2='''' ; select @value1=@value1+'',''''''+a.name+char(39),@value2=@value2+'',cast(''+a.name+'' as varchar(200))'' from '+@库名+'..syscolumns a,'+@库名+'..sysobjects d where a.id=d.id and d.name='''+@表名+''''exec sp_executesql @temp1,N'@value1 nvarchar(4000) output , @value2 varchar(8000) output',@temp1 output,@temp2 outputselect @temp1=right(@temp1,len(@temp1)-1),@temp2=right(@temp2,len(@temp2)-1)set @temp2='bcp "select '+@temp1+' union all SELECT '+@temp2+' FROM '+@库名+'..'+@表名+'" queryout '+@路径及文件名+' -c -S'+@服务器名+' -U'+@用户名+' -P'+@密码--print @temp2
EXEC master..xp_cmdshell @temp2
goexec 导出xls文件 '服务器名','库名','表名','sa','密码','c:\文件.xls'go
drop proc 导出xls文件
go