SQL Server 2005中写文件的方法

--创建写文件的存储过程

ALTER proc [dbo].[p_movefile]
 @filename varchar(1000),--要操作的文本文件名  
 @text varchar(8000),   --要写入的内容
 @obj int
as  
begin
 declare @err  int,
   @src  varchar(255),
   @desc varchar(255)   
   
 exec @err=sp_oamethod @obj, 'OpenTextFile', @obj  out, @filename,8,1  
 if @err<>0  
  goto lberr  
 exec @err=sp_oamethod   @obj,'WriteLine',null,@text  
 if @err<>0  
  goto lberr  
   
 exec @err=sp_oadestroy @obj  

 return    
lberr:  
 exec sp_oageterrorinfo 0, @src out,@desc out  
 select cast(@err as  varbinary(4)) as 错误号,@src as 错误源,@desc as 错误描述
end

--调用上面的p_movefile的存储过程,将数据库查询内容写入到文件中去ALTER proc [dbo].[abc]
as
declare @SummarizationState int, @LocalUpdateID int, @TargetID int
declare   @obj   int  
declare @newline char(2)
declare @fulFileName nvarchar(256),
 @content nvarchar(4000)
 declare C Cursor for
 select SummarizationState, LocalUpdateID, TargetID from tbUpdateStatusPerComputer
begin
 --set nocount on  
 exec master..xp_cmdshell 'del  C:/sql.txt';
 --exec sp_oacreate 'Scripting.FileSystemObject',@obj out
 --exec sp_OADestroy @obj;
 exec sp_oacreate 'Scripting.FileSystemObject',@obj out
 OPEN C
 Fetch Next from C into @SummarizationState, @LocalUpdateID, @TargetID
 set @content=N'';
 set @newline='/n';
 while @@Fetch_status=0
 begin
  set @content=N'TargetID:'+convert(nvarchar(15),@TargetID);
  set @content=@content + N'    LocalUpdateID:'+ convert(nvarchar(15),@LocalUpdateID);
  set @content=@content + N'    SummarizationState:'+ convert(nvarchar(15),@SummarizationState);
  set @content=@content + '==============';

  set @fulFileName=N'C:/sql.txt'
  exec p_movefile   @fulFileName,@content,@obj

  Fetch Next from C into @SummarizationState, @LocalUpdateID, @TargetID
  
 end
 Close C
 Deallocate C 
end
go
exec abc
go

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值