BCP导出文件

CREATE      PROCEDURE [dbo].[p_To_Csv]
@path varchar(50)
as
begin

	/**
	* 将统计好的数据存放到指定路径的csv文件中 
	* csv文件的命名规则如下 其中 20100118为日期~~ 
	* 作业一般为凌晨2点10分执行 ,生成的是前一天的数据
	* @path 传入的路径
	*  
	*/
	if(@path='')
	set @path='D:\backup'

   	declare @folderexist int 
    	declare @intime datetime 
	declare @txtname varchar(50),@datestr varchar(8) , @fullpath varchar(200),@sql varchar (1000) 
	declare @year varchar(4),@month varchar(2),@day varchar(2)
	declare @bcpstr varchar(1100) ,@bcpstrfolder varchar(1000),@bcpstrcreate varchar(1000)
	  

--------------------------------------------------------
	set @sql =' select '''+'timeLine'+''','''+'RadiusNum'+''' '
	+' union all '
	+ 'select timeline,cast(radiusNum as varchar(20)) from wapLog..radiusStat'
	  
    set @intime =dateadd(day,-1,getdate())
	set @year=cast(year(@intime) as varchar(4))
	set @month=cast(month(@intime) as varchar(2))
	set @day=cast(day(@intime) as varchar(2))
	
	if (substring(@month,1,1)<>'0' and len(@month)=1) set @month='0'+@month
	if (substring(@day,1,1)<>'0' and len(@day)=1) set @day='0'+@day
	
	--如果文件夹不存在 主动创建
	set @bcpstrfolder='cd /d '+@path
	exec @folderexist=master..xp_cmdshell @bcpstrfolder,no_output
	if @folderexist<>0
	begin
		set @bcpstrcreate='md '+@path
		exec   master..xp_cmdshell @bcpstrcreate
	end
    ---拼接 路径 文件名 
	set @datestr=@year+@month+@day
	set @txtname=aaaa_'+@datestr+'.csv'
	set @fullpath=@path+@txtname
	if(right(@path,1)<>'\') set @fullpath=@path+'\'+@txtname

	--print(@fullpath)
    ------生成到Csv文件
	set @bcpstr='bcp "'+@sql+' " queryout '+@fullpath+' -t, -c -T'
		 print @bcpstr	
		exec master..xp_cmdshell @bcpstr
	end

	
GO 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值