赞
踩
参考了站内这篇文章
sqlserver配置定时任务查询SQL导出excel并以附件发送邮件_柠檬--lemon的博客-CSDN博客_sqlserver 查询结果 发送邮件
细化邮件配置的内容
- --创建存储过程【执行一次】(修改 Alter procedure [dbo].[pr_Employee_Bak]。。。)
- Create procedure [dbo].[TESTEXCEL]
-
- as
-
- begin
-
- ---这里可以增加对数据表的查询条件或更多的数据处理;
-
- ---将结果放入一个新的数据表,然后将这个新表导出EXCEL文件;
-
- declare @file_path varchar(200);--导出EXCEl文件的路径;
-
- declare @file_name varchar(200);--导出EXCEl的文件名;
-
- declare @exec_sql varchar(200);--SQL语句;
-
- declare @file_pathname varchar(200);--导出EXCEl的文件名;
-
- ---分开定义是为了以后修改路径或文件名更方便。
-
- set @file_path = 'D:\TEST\'
-
- set @file_name = 'dept' + CONVERT(varchar(100), GETDATE(), 112)+'.xls'
-
- set @file_pathname = @file_path+@file_name
-
- set @exec_sql = 'SELECT SUBINV_CODE FROM scbi.dbo.DW_DIM_SUBINV' ---数据表使用的完整路径;
- -- instructions_test:数据库; employee:表名
-
- set @exec_sql = ' bcp "'+@exec_sql+'" queryout "'+@file_path+''+@file_name+'" -c -T -U "sa" -P "hz.123456"';
-
- --PRINT @exec_sql
-
- ----通过bcp将查询结果导出为excel:U "sa" -P "SQLpassword" 这是数据库的sa账号和密码;
-
- EXEC master..xp_cmdshell @exec_sql
-
-
- --配置邮件发送程序
- DECLARE @ACCOUNT_ID INT,@ACCOUNT_NAME NVARCHAR(200),@EMAIL_ADDR NVARCHAR(MAX),@ITEM NVARCHAR(200)
-
- --创建邮件帐户信息
- SET @ACCOUNT_NAME = 'TEST'
- SELECT @ACCOUNT_ID = ACCOUNT_ID FROM MSDB..SYSMAIL_ACCOUNT WHERE NAME=@ACCOUNT_NAME
- IF (@ACCOUNT_ID IS NOT NULL)
- BEGIN
- EXEC MSDB.DBO.SYSMAIL_DELETE_ACCOUNT_SP @ACCOUNT_ID, @ACCOUNT_NAME
- END
-
- EXEC MSDB.DBO.SYSMAIL_ADD_ACCOUNT_SP
- @ACCOUNT_NAME = @ACCOUNT_NAME, -- 邮件帐户名称
- @EMAIL_ADDRESS = '', -- 发件人邮件地址
- @DISPLAY_NAME = '系统管理员', -- 发件人姓名
- @REPLYTO_ADDRESS = NULL,
- @DESCRIPTION = 'TEST',
- @MAILSERVER_NAME = 'mail.unicloud.com', -- 邮箱服务器地址
- @PORT = 587, -- 邮箱服务器端口
- @USERNAME = '', -- 邮箱用户名
- @PASSWORD = '', -- 邮箱密码
- @USE_DEFAULT_CREDENTIALS = 0,
- @ENABLE_SSL = 0
-
- --数据库配置文件
- IF EXISTS( SELECT 1 FROM MSDB.DBO.SYSMAIL_PROFILE WHERE NAME = N'TEST')
- BEGIN
- EXEC MSDB.DBO.SYSMAIL_DELETE_PROFILE_SP @PROFILE_NAME = 'TEST'
- END
- EXEC MSDB.DBO.SYSMAIL_ADD_PROFILE_SP
- @PROFILE_NAME = 'TEST', -- profile 名称
- @DESCRIPTION = '数据库邮件配置文件' -- profile 描述
-
-
- --用户和邮件配置文件相关联
- EXEC MSDB.DBO.SYSMAIL_ADD_PROFILEACCOUNT_SP
- @PROFILE_NAME = 'TEST', -- PROFILE 名称
- @ACCOUNT_NAME = 'TEST', -- ACCOUNT 名称
- @SEQUENCE_NUMBER = 1 -- ACCOUNT 在 PROFILE 中顺序
-
- --配置发送对象
- SELECT @EMAIL_ADDR='xxxxx@xxxxxx.com'
-
- SET @ITEM='TEST'
-
-
- EXEC MSDB.DBO.SP_SEND_DBMAIL
- @PROFILE_NAME = 'TEST', --配置名称
- @RECIPIENTS =@EMAIL_ADDR, --接收邮件地址列表,可以多个,中间以分号分隔
- @SUBJECT = @ITEM, --邮件主题
- @file_attachments = @file_pathname, --附件
- @body_format = 'HTML'
-
-
-
- end

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。