zoukankan      html  css  js  c++  java
  • 将SQL Server查询导出本地excel(mail发送)

    1.将数据库中查询的表格导出到指定的路径,首先启用.xp_cmdshell,上一篇随笔有写如何开启.xp_cmdshell。

    DECLARE @sql  NVARCHAR(4000)    --定义变量存储格式
    DECLARE @server  NVARCHAR(20)  --定义变量存储格式
    set @server='localhost'       --赋值变量
    DECLARE @filename1 NVARCHAR(max)  --定义变量存储格式
    SET @filename1='D:\GSFiles\HRLeave\MonthStat\GSOT_WeekRep_'+CONVERT(NVARCHAR,GETDATE(),112)+'.xls'      --赋值变量路径
    SET @sql= 'bcp "SELECT adays,empid,empname,THour3,DeptID,DeptName FROM GSeServiceDB.dbo.GSOT_Alarm_Day002_TOTAL" queryout '+@filename1+' -c -w -S '+@server+' -T '     --使用bcp  queryout  SQL语句导出数据库表存储到本地
    EXEC master..xp_cmdshell @sql  --执行@sql 的bcp命令


    2.将存储本地的excel用邮件方式发送

    EXEC msdb.dbo.sp_send_dbmail
    @profile_name='MIS_EBIZ',
    @recipients='邮件地址',
    @copy_recipients='',
    @blind_copy_recipients='',
    @subject='',
    @body='',
    @body_format='HTML',    --传送格式语言
    @file_attachments =@filename1;  --带入赋值变量存储的路径文件(附件)

    注:SELECT @MailTo=COALESCE(@MailTo + ';' , '') + Email FROM account_Users WHERE EmpID in (select empid from GSOT_Group_Adm) AND IsLeave='N' AND Email!='' AND Email!='*******'     --使用COALESCE函数将查询到的邮件地址以分号(;)隔开合并

  • 相关阅读:
    脚本编辑器的写法
    图集优化
    数组与链表的区别
    第四课 vi编辑器使用
    第三课下 Linux termina命令行常用快捷键
    第三课上 Linux命令入门
    01.Volatile相关知识
    第二课 Ubuntu环境搭建和图形界面操作
    第一课 不要用老方法学习单片机和ARM
    第八讲 IPC之信号量Semaphore
  • 原文地址:https://www.cnblogs.com/popo1/p/10683550.html
Copyright © 2011-2022 走看看