根据SQL语句生成文本文件

最近看SQL Server 有关导入外部数据的方法,相关的,特转过来研究.

 /***************************************************************************
 //  说明 : 根据SQL语句生成文本文件 (带日期戳,字段用逗号,分隔)
 //    SQL语句里所有出现的表名要用 [数据库名].[用户名].[表名] 来详细标记
 //  创建 : maggiefengyu  邮件 : maggiefengyu@tom.com  日期 :2006-03-03
 ***************************************************************************/
 alter  PROCEDURE sp_sql_query_to_file(
  @servername  varchar(50),    --服务器名
  @username  varchar(50),  --用户名,如果用NT验证方式,则为空''
  @password  varchar(50) ,    --密码
  @sql_query  varchar(2000) ,  --SQL查询语句,有字符条件时用单引号
  @filePath_name  varchar(1000),   --导出路径和文件名
  @date  datetime    --保存文件时的生成日期戳
 )AS
  DECLARE @sql  varchar(8000)
  SET @sql='bcp "'+@sql_query + '" queryout '+' "'+@filePath_name+'_'+
   convert(varchar(12),@date,112)+'.txt " /t "," /w'
     +' /S '+@servername
     +CASE WHEN ISNULL(@username,'')='' THEN '' ELSE ' /U '+@username END
     +' /P '+ISNULL(@password,'')
  
  select @sql 
 
  EXEC master..xp_cmdshell @sql
 
  IF @@Error<>0 BEGIN
   print '生成文件时出错了,请查看!'+@@Error
  END
 GO
   
--    调用方法举例:
-- --    
    DECLARE @dt datetime
--   DECLARE @sql_query varchar(6000)
   set @dt=getdate()
--   set @sql_query='select convert(varchar,orderdate,120),'+
--     'convert(varchar,requireddate,120),'+
--     'convert(varchar,shippeddate,120),'+
--     'shipcountry from northwind.dbo.orders '+
--     'where orderdate<getdate()-30'
--   select len(@sql_query)
--   
-- EXEC sp_sql_query_to_file '192.168.0.2','t_user','t_user_pwd',@sql_query,'e:/yu/orders',@dt


EXEC sp_sql_query_to_file 'lidaweipc','sa','infact','select * from Northwind.dbo.Orders','d:/orders',@dt

  

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值