需求:每天生成一份txt文件数据,供第三方通过http方式调用
方法:
1、新建存储过程:
USE [LocojoyMicroMessage]
GO
/****** Object: StoredProcedure [dbo].[sp_ExportTxt] Script Date: 03/24/2014 10:08:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:xxx
-- Create date:xxxx-xx-xx
-- Description: 定时导出前一天数据
-- =============================================
-- 开通xp_cmdshell权限
-- EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
-- 新建作业:每天凌晨1点执行
ALTER PROCEDURE [dbo].[sp_ExportTxt]
AS
Begin
declare @sqlstr varchar(3000)
declare @pathStr varchar(3000)
declare @fileName varchar(3000)
set @pathStr='c:\abc\'
--
set @fileName='前缀_'+convert(varchar(10),getdate()-1,112)
select CONVERT(varchar(50), col1, 20)+'|'+CONVERT(varchar(50),gameServerId)+'|' + case Productid when 'xxx' then 'TWD' else 'USD' end +'|' +CONVERT(varchar(50),isnull(amount,0))+'|' +
+ CONVERT(char(6),logTime,112) as colName
into ##TemAAADate from dbo.表名
where CONVERT(varchar(100), logTime, 23)=CONVERT(varchar(100), GETDATE()-1, 23) --前一天数据 set @sqlstr='bcp "select * from ##TemAAADate" queryout "' + @pathStr + @fileName +'.txt" -c -T -x'
exec master.dbo.xp_cmdshell @sqlstr
drop table ##TemAAADate
End
-- EXEC [dbo].[sp_ExportTxt]
2、创建sql作业代理 exec 上面存储过程,每天凌晨1点执行
3、创建一个空的web站点,把第一步生成的txt文件 生成到这个web站点的一个固定目录下,这样第三方就可以访问了“http://xxxx:8005/datalist/2014-03-21.txt”。