SQL中利用脚本创建database mail.

Advertisement

SQL中利用脚本创建database mail

编写人:CC阿爸

2014-6-14

多话不讲,请参考以下脚本

use master

go

exec sp_configure 'show advanced options',1

go

reconfigure

go

exec sp_configure 'Database mail XPs',1

go

reconfigure

go

DECLARE @ProfileName VARCHAR(255)

DECLARE @AccountName VARCHAR(255)

SET @ProfileName = 'SystemMail';

SET @AccountName = 'SystemMail';

--Initial Cleanup:

IF EXISTS(

SELECT * FROM msdb.dbo.sysmail_profileaccount pa

JOIN msdb.dbo.sysmail_profile p ON pa.profile_id = p.profile_id

JOIN msdb.dbo.sysmail_account a ON pa.account_id = a.account_id

WHERE

p.name = @ProfileName AND a.name = @AccountName)

BEGIN

PRINT 'Deleting Profile Account'

EXECUTE sysmail_delete_profileaccount_sp

@profile_name = @ProfileName,

@account_name = @AccountName

END

IF EXISTS( SELECT * FROM msdb.dbo.sysmail_profile p WHERE p.name = @ProfileName)

BEGIN

PRINT 'Deleting Profile.'

EXECUTE sysmail_delete_profile_sp

@profile_name = @ProfileName

END

IF EXISTS( SELECT * FROM msdb.dbo.sysmail_account a WHERE a.name = @AccountName)

BEGIN

PRINT 'Deleting Account.'

EXECUTE sysmail_delete_account_sp

@account_name = @AccountName

END

exec msdb..sysmail_add_account_sp

@account_name = 'SystemMail' -- 邮件帐户名称(SQL Server 使用)

,@email_address = '[email protected]' -- 发件人邮件地址

,@display_name = 'SystemMail' -- 发件人姓名

,@replyto_address = '[email protected]'

,@description = 'system alert'

,@mailserver_name = 'smtp.163.com' -- 邮件服务器地址

,@mailserver_type = 'SMTP' -- 邮件协议(SQL 2005 只支持SMTP)

,@port = 25 -- 邮件服务器端口

,@username = '[email protected]' -- 用户名

,@password = 'xxxxx' -- 此处为邮件密码。暂以x代替

,@use_default_credentials = 0

,@enable_ssl = 0

,@account_id = null

exec msdb..sysmail_add_profile_sp @profile_name = 'SystemMail' -- profile 名称

,@description = 'system alert' -- profile 描述

,@profile_id = null

exec msdb..sysmail_add_profileaccount_sp @profile_name = 'SystemMail' -- profile 名称

,@account_name = 'SystemMail' -- account 名称

,@sequence_number = 1 -- account 在profile 中顺序

------test databasemail

----DECLARE @xml NVARCHAR(MAX)

----DECLARE @body NVARCHAR(MAX)

------SET @xml =CAST(( SELECT ID AS 'td','',UserID AS 'td' ,'',UserName AS 'td' from ERV.dbo.CA FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))

----SET @body ='<html><H1>Sales Reports</H1><body ><table border = 1><tr><td>ID</td><td>UserID</td><td>UserName</td></tr>'

----SET @body = @body + @xml +'</table></body></html>'

----

----

------test databasemail

----

----EXEC msdb.dbo.sp_send_dbmail

[email protected]=N'[email protected]',

[email protected]= @body,

[email protected]_format ='HTML',

[email protected] = 'Test Database Mail html',

[email protected]_name = 'SystemMail'

----go

----use msdb

----

------要检查消息是否发送成功,我可以对sysmail_allitems系统视图执行一次查询。

--select * from sysmail_allitems

--select * from sysmail_mailitems

--select * from sysmail_event_log

--将一个配置文件设置为数据库的默认公共配置文件

exec msdb.dbo.sysmail_help_principalprofile_sp

EXECUTE msdb.dbo.sysmail_update_principalprofile_sp

@principal_name = 'public',

@profile_name = 'SystemMail',

@is_default = '1';

有关更多的技术分享,大家可以加入我们的技术群。

欢迎加入技术分享群:238916811

Similar Posts:

  • sql中利用SP_KEYS来确定一个表格的关键键(转)

    sql中利用SP_KEYS来确定一个表格的关键键(转) 当你需要找到一个表格是否有一个关键键,你可以使用系统的存储进程sp_pkeys.系统的存储进程有三个输入参数: @table_name:这个是询问语句中表格的名字,在通配符没有被使用的时候它是一个必须使用的参数. @table_owner:这个是表格系主. @table_qualifier:这个是表格所在地的数据库名字 (这个很让人产生一种误解,因为你必须执行表格所在地的数据库中的这个进程) sp_keys进程将返回这个信息: TABLE_

  • 在PHP中利用wsdl创建标准webservice的实现代码 SoapDiscovery.class.php

    在PHP中利用wsdl创建标准webservice的实现代码 作者: 字体:[增加 减小] 类型:转载 时间:2011-12-07我要评论 网上有现成的nusoap,我没使用,如果使用了,我可能就不知道PHP是怎么创建webservice的了 1.创建wsdl  说明:  A.非标准的webservice,可能只能PHP才能访问  B.标准的webservice,就必须要使用wsdl(webservice description language,就是用XML语法标准来描述你的服务内容,我是这么

  • SQL中利用旧表创建新表

    今天看到有些朋友问如何利用旧表创建新表,但很多朋友给的答案是不正确的. 像 create table newtable like oldtable; select * from oldtable into newtable; 这两种方法都不对,正确的方法是 select * into newtable from oldtable; 如果不想导记录,只想生成表结构 :select * into newtable from oldtable where 1=2; 如果newtable已存在,想导入记

  • wpf 中利用border创建带有圆角的区域

    在wpf中可以很好的利用border来创建一些很漂亮的图形边框 可以通过设置border的 " CornerRadius="0,20,30,40" "使其边框呈现一个圆角

  • 在PHP中利用wsdl创建标准webservice的实现代码

    1.创建wsdl 说明: A.非标准的webservice,可能只能PHP才能访问 B.标准的webservice,就必须要使用wsdl(webservice description language,就是用XML语法标准来描述你的服务内容,我是这么理解的) 在这里我只介绍标准的webservice. 那么如何创建wsdl呢?对于PHP来说这确实是件很不容易的事情,有人说用zend studio创建很方便,这是一种方法.但对于那些不喜欢用zend studio的人来说,会觉得创建一个webser

  • Sql中使用With创建多张临时表

    CREATE PROC [dbo].[sp_VisitCount] ( @count INT ) AS BEGIN DECLARE @current DATETIME SET @current=GETDATE(); WITH TodayVisitTable AS ( SELECT CorpName,COUNT(CorpName) AS TodayVisit FROM dbo.VisitRecords WHERE YEAR(VisitTime)=YEAR(@current) AND MONTH(V

  • 方便好用的Database Mail - SQL2005

    有在用 SQL 2000的使用者還記得 SQL Mail吧. SQL Mail是利用MAPI的方式進行mail的傳遞, 在實務上往往會使用outlook配合exchange server來進行環境的建立, 也造成在使用SQL Mail前, 要準備好這些環境. 但在一般的應用上, 要使用SQL Mail, 又要有這些環境, 不見得很容易實現. 另外再加上SQL Mail在cluster環境時, 也要注意兩台的MAPI profile的設定, 才不會發生發不出mail的問題. 是的, 你的不方便,

  • 浅谈如何在SQL Server中生成脚本

    在生成脚本过程中,有很多参数可以选择,合理的配置这些参数,可以让我们很方便的按照我们的期望生成脚本. 生成脚本的一些选项,如下图: 我这里是SQL 2005 的选项, SQL 2008 的选项跟这个稍有差异. 这个差异可以参看下面两篇文章 SQL Server 2005 的生成 SQL Server 脚本向导("选择脚本选项"页) http://technet.microsoft.com/zh-cn/library/ms186472(SQL.90).aspx SQL Server 20

  • 【翻译】SQL SERVER 2008 发送DataBase Mail

    本文我们将讨论下关于如何使用Database Mail在数据库中发送邮件.在这之前可以了解下Database Mail和SQL Mail的区别.Database Mail取代SQL Mail并提供了更多功能.所以现在升级使用Database Mail ,放弃SQL Mail. 在SQL Server中发送Emai,共有3个步骤.1.创建策略规则和账户2.配置Email3.发送Email 第一步:创建策略和账户 第二步:配置Email 成功创建策略和账户后, 我们需要配置Database Mail

  • sql server中利用sql语句如何创建角色和用户

    sql server中利用sql语句如何创建角色和用户 /*--示例说明 示例在数据库pubs中创建一个拥有表jobs的所有权限.拥有表titles的SELECT权限的角色r_test 随后创建了一个登录l_test,然后在数据库pubs中为登录l_test创建了用户账户u_test 同时将用户账户u_test添加到角色r_test中,使其通过权限继承获取了与角色r_test一样的权限 最后使用DENY语句拒绝了用户账户u_test对表titles的SELECT权限. 经过这样的处理,使用l_t

Tags: