动态导出数据到文本/xls/sql/doc文件

本文介绍了一种使用SQL语句批量插入数据的方法,并通过动态生成SQL语句实现数据的导出。具体包括利用T-SQL编写动态SQL来构造插入语句,以及通过BCP命令将查询结果导出到文本文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

select IDENTITY(int, 1,1) AS [id],'insert into tt(filetype,Brand,ProdNo,ProdType ,filetitle,C0001,Tmoney,HttpUrl,parentid) values(' +''''+'G'+''''+',' +''''+isnull(a.EC0102,'')+''''+',' +''''+isnull(a.EC0107,'')+''''+',' +''''+isnull(b.EC0123,'')+''''+',' +''''+isnull(EC0104,'') +case when isnull(EC0103,'')<>'' then '('+isnull(EC0103,'')+')' else '' end+''''+',' +''''+isnull(a.EC0118,'')+''''+',' +''''+cast(isnull(b.EM0125,0) as varchar)+''''+',' +''''+isnull(a.EC0982,'')+''''+',' +''''+c.a+'''' +');' memo into temptb_01 from t1 a join t2 b on a.EC0102=b.EC0102 and a.EC0107=b.EC0107 left join tb_1 c on a.objjc=c.b where a.objid<>1 and a.EC0102 in('Abnova','Accurate' ,'Anatrace') --动态导出数据到文本文件/excel/word中 declare @sql varchar(8000) --查询的语句 ,@filename varchar(50)--文件名称 ,@filetype varchar(20)--文件类型 ,@i int --次数 ,@str varchar(8000)--输出结果 ,@servername varchar(200)--服务器名称 ,@username varchar(200)--登录用户名 ,@pwd varchar(200)--登录密码 ,@temp varchar(100) ,@pagesize int--每页导出记录条数 set @i=32 set @pagesize=5000 set @filename='data' set @filetype='.sql' set @servername='TANGJIGANG/CENTAUR_TOM' set @username ='sa' set @pwd='sa' while @i>=0 begin set @sql='"Select memo from erp_prod..temptb_01 where id<='+cast(@pagesize*(@i+1) as varchar)+' and id>'+cast(@pagesize*@i as varchar)+'"' select @str='master..xp_cmdshell '' bcp '+@sql +' queryout c:/test/'+@temp+@filetype+' -c -S'+@servername+' -U'+@username+' -P'+@pwd+'''' select @i=@i-1 select @temp=@filename+cast(@i as varchar) select @str='exec( '+''''+replace(@str,'''','''''')+''')' exec(@str)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值