bcp问题+查询问题

zhigangsun 2003-08-21 12:08:22
我用bcp将sql server得查询结果集导出到excel中但是没有字段名,这个问题该怎么解决?
有一张表字段如下;
a_1,a_2,a_3....a_12分别表示一年中12个月得值
我想查询前半年得值该怎么解决,也就是说在select表达式中得所选字段可以用参数吗?
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-08-21
  • 打赏
  • 举报
回复
带列名:

CREATE proc out2xls
@服务器名 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)+'' [''+a.name+'']'',@value2=@value2+'',cast(''+''[''+a.name+'']''+ '' as varchar(200))'' from '+@库名+'..syscolumns a,'+@库名+'..sysobjects d where a.id=d.id and d.name='''+@表名+''''+' order by a.colorder'


exec sp_executesql @temp1,N'@value1 nvarchar(4000) output , @value2 varchar(8000) output',@temp1 output,@temp2 output

select @temp1=right(@temp1,len(@temp1)-1),@temp2=right(@temp2,len(@temp2)-1)

exec('select * into '+@库名+'.dbo.中间表 from (select '+ @temp1+' union all SELECT '+@temp2+' FROM '+@库名+'..'+@表名+') tem3')


set @temp2='bcp '+@库名+'.dbo.中间表 out '+@路径及文件名+' -c -S'+@服务器名+' -U'+@用户名+' -P'+@密码

EXEC master..xp_cmdshell @temp2
exec('drop table '+@库名+'.dbo.中间表')
GO
exec out2xls 'daliserver','pubs','jobs','sa','element','c:\a.txt'
go
drop proc out2xls
happy_0325 2003-08-21
  • 打赏
  • 举报
回复
可以用
delcare @sql varchar(500)
declare @i int
set @i=1
@sql='select a_'+@i
execute @sql
CrazyFor 2003-08-21
  • 打赏
  • 举报
回复
用DTS导出可以有字段名,

或BCP导出没有参数可以设置加字段名,除非你在要导出的记录中插入一条"字段名记录".
zhigangsun 2003-08-21
  • 打赏
  • 举报
回复
to happy_0235
不行呀
我打算建一个存储过程然后输入参数来选择要查询得列,你得办法不太和我得要求

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧