SQL job中用BCP大量copy数据
为了监控报表每天是否正常生成,在本项目中使用了SQL JOB, 并用BCP把报表的数据大量copy到csv文件,如果生成文件失败,邮件通知。
报表订阅也可以有此效果,但是一旦报表运行失败后,维护人员得不到通知,导致无人知晓并修复。所以SQL JOB可以有定时执行并且发送邮件通知。
下面是一个小Demo,SQL脚本如下.
DECLARE @CurrentDate varchar(100) SET @CurrentDate = CONVERT(CHAR(8), GETDATE(), 112) DECLARE @ConditionDate varchar(100) SET @ConditionDate = CONVERT(CHAR(20), GETDATE(), 20) DECLARE @SQL_1 varchar(1000) SET @SQL_1 = 'EXEC Produre'''+@ConditionDate+''',''-1''' DECLARE @OutPath varchar(100) SET @OutPath = 'C:\+ @CurrentDate + '.csv' DECLARE @Script varchar(1000) SET @Script = 'BCP "' + @SQL_1+ '" queryout "' + @OutPath + '" -c -U"C3PX" -P"C3PX" -S"IBDC3DEVALIAS"' EXEC xp_cmdshell @Script
也可以用cmd命令执行。
欢迎交流,一起进步