楼主: snoxmk

[讨论] SQLserver怎么将SQL结果保存为EXCEL并自动以邮件形式发送出来?

[复制链接]
论坛徽章:
6
奥运会纪念徽章:篮球
日期:2008-10-24 13:29:382011新春纪念徽章
日期:2011-01-04 10:35:17ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15问答徽章
日期:2013-12-13 11:53:28福特
日期:2013-12-22 21:22:382014年世界杯参赛球队: 阿根廷
日期:2014-07-15 10:49:33
31#
发表于 2014-6-24 18:44 来自手机 | 只看该作者
导入导出简单吧,把导入导出的包保存下来,增加个发邮件的功能就可以了,比数据库邮件简单多了

使用道具 举报

回复
招聘 : 数据库管理员
论坛徽章:
99
技术图书徽章
日期:2014-03-27 09:30:56秀才
日期:2018-04-08 14:48:31
32#
发表于 2014-6-24 21:55 | 只看该作者
不错的问题

使用道具 举报

回复
论坛徽章:
2
奥迪
日期:2013-10-11 16:32:132014年世界杯参赛球队: 英格兰
日期:2014-06-14 15:15:41
33#
发表于 2014-7-2 17:19 | 只看该作者
mark下,学习

使用道具 举报

回复
论坛徽章:
10
2010新春纪念徽章
日期:2010-03-01 11:06:22ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:192013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09itpub13周年纪念徽章
日期:2014-09-28 10:55:55懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18
34#
发表于 2014-7-3 08:34 | 只看该作者
另外还有一个要提醒一下,用这个功能要注意msdb系统数据库的大小,需要定期清理的。

使用道具 举报

回复
论坛徽章:
2
美羊羊
日期:2015-03-04 14:52:282015年新春福章
日期:2015-03-06 11:58:18
35#
发表于 2014-7-4 16:31 | 只看该作者
interstellar 发表于 2014-7-3 08:34
另外还有一个要提醒一下,用这个功能要注意msdb系统数据库的大小,需要定期清理的。

declare @w_time nvarchar(10)
    set @w_time=convert(nvarchar(10),dateadd(DAY,-7,GETDATE()),111)
    EXECUTE msdb.dbo.sysmail_delete_mailitems_sp     
    @sent_before=@w_time ,@sent_status='sent'

使用sysmail_delete_mailitems_sp 定期清理msdb的sysmail_mailitems?

使用道具 举报

回复
论坛徽章:
10
2010新春纪念徽章
日期:2010-03-01 11:06:22ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:192013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09itpub13周年纪念徽章
日期:2014-09-28 10:55:55懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18
36#
发表于 2014-7-4 16:41 | 只看该作者
snomxk 发表于 2014-7-4 16:31
declare @w_time nvarchar(10)
    set @w_time=convert(nvarchar(10),dateadd(DAY,-7,GETDATE()),111)
...

正解!

使用道具 举报

回复
论坛徽章:
10
2010新春纪念徽章
日期:2010-03-01 11:06:22ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:192013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09itpub13周年纪念徽章
日期:2014-09-28 10:55:55懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18
37#
发表于 2014-7-4 16:44 | 只看该作者
本帖最后由 interstellar 于 2014-7-4 16:44 编辑
snomxk 发表于 2014-7-4 16:31
declare @w_time nvarchar(10)
    set @w_time=convert(nvarchar(10),dateadd(DAY,-7,GETDATE()),111)
...

这段sql看着很眼熟

使用道具 举报

回复
论坛徽章:
2
美羊羊
日期:2015-03-04 14:52:282015年新春福章
日期:2015-03-06 11:58:18
38#
发表于 2014-7-5 12:13 | 只看该作者
interstellar 发表于 2014-7-4 16:44
这段sql看着很眼熟

不会是你写的吧,
源自度娘,如有雷同纯属正常。

使用道具 举报

回复
论坛徽章:
10
2010新春纪念徽章
日期:2010-03-01 11:06:22ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:192013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09itpub13周年纪念徽章
日期:2014-09-28 10:55:55懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18
39#
发表于 2014-7-7 09:35 | 只看该作者
本帖最后由 interstellar 于 2014-7-7 09:40 编辑
snomxk 发表于 2014-7-5 12:13
不会是你写的吧,
源自度娘,如有雷同纯属正常。

嗬嗬,正是鄙人,两年多前写的。现在比较懒了不大写了。

度娘很强大。

使用道具 举报

回复
论坛徽章:
0
40#
发表于 2014-7-15 21:53 | 只看该作者
本帖最后由 Herogao 于 2014-7-15 21:54 编辑

exec msdb..sp_send_dbmail
@profile_name = 'sqlmail1', --就是在步骤2中的配置文件名。
--调用发送邮件的存储过程,登录帐号必须有msdb的datamail权限
@recipients = '@abccom.cn',--用来接受邮件的地址
@subject = 'test',
@append_query_error = 1,
--@attach_query_result_as_file = 1,
--@query_attachment_filename = 'a.txt',
@body = '@tableHTML',
@body_format = 'html',
@query = '
DECLARE @tableHTML  NVARCHAR(MAX) ;
set  @tableHTML=
N'<H1>Work Report</H1>' +
N'<table border="1">' +
N'<tr><th>MTL CATGRY</th><th>MTL EN</th>' +
cast((select td=cast(a.MTL_CATGRY as varchar),td=cast(a.MTL_DESC_EN as varchar)
from FSDBMR.dbo.v_MtlCat a for xml path('tr'),type)as nvarchar(MAX))+
N'</table>';
select @tableHTML
'

上面的脚本,运行后,报一下错误。

Msg 102, Level 15, State 1, Line 14
Incorrect syntax near '<'.

我单独运行:
DECLARE @tableHTML  NVARCHAR(MAX) ;
set  @tableHTML=
N'<H1>Work Order Report</H1>' +
N'<table border="1">' +
N'<tr><th>MTL CATGRY</th><th>MTL DESC EN</th>' +
cast((select td=cast(a.MTL_CATGRY as varchar),td=cast(a.MTL_DESC_EN as varchar)
from FSDBMR.dbo.v_MtlCat a for xml path('tr'),type)as nvarchar(MAX))+
N'</table>';
select @tableHTML

sql没有报错提示,结果显示为:
<H1>Work Order Report</H1><table border="1"><tr><th>MTL CATGRY</th><th>MTL DESC EN</th><tr><td>MRPMaterial_Raw_Purchasing</td></tr><tr><td>MRIMaterial_Raw_Importing</td></tr><tr><td>MRSMaterial_Raw_Subcontracting</td></tr><tr><td>MRCMaterial_Raw_Custom_Provide</td></tr><tr><td>MWPMaterial_Work_In_Process</td></tr><tr><td>MPTMaterial_Product</td></tr><tr><td>MASMaterial_Accessory</td></tr><tr><td>ACTAsset_Tool_Cutting</td></tr><tr><td>AHTAsset_Tool</td></tr><tr><td>AFJAsset_Fixture & Jig</td></tr><tr><td>AMCAsset_Machine</td></tr><tr><td>AMAAsset_Machine_Accessory</td></tr><tr><td>AMEAsset_Measurement_Equipment</td></tr><tr><td>AOEAsset_Office_Equipment</td></tr><tr><td>AIEAsset_IT_Equipment</td></tr><tr><td>AVHAsset_Vehicle</td></tr><tr><td>AFOAsset_Facility_Others</td></tr><tr><td>RFCResource_Facility</td></tr><tr><td>RLBResource_Labor</td></tr></table>

请帮忙指点一下,哪儿出现问题了?谢谢!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表