sqlserver2005中作成数据库邮件配置文件的存储过程

CREATE   PROCEDURE   [ dbo ] . [ CreateMailProfile ]
     @profileName         sysname,
    
@profileDescription   nvarchar ( 256 ),
     @accountName         sysname,
    
@accountDescription   nvarchar ( 256 ),
    
@mailAddress          nvarchar ( 128 ),
    
@mailDisplayName      nvarchar ( 128 ),
    
@mailServer           nvarchar ( 128 ),
    
@mailUsername         nvarchar ( 128 ),
    
@mailPassword         nvarchar ( 128 )
AS
BEGIN
    
SET  NOCOUNT  ON ;
    
BEGIN   TRANSACTION ;     
     DECLARE   @resultStatus   datetime ;
    
SELECT   @resultStatus = last_mod_datetime  FROM  msdb.dbo.sysmail_profile
    
WHERE   [ name ]   =   @profileName ;
    
IF  ( @resultStatus   IS   NOT   NULL )
    
BEGIN
        
-- 先删除配置文件的用户关联(公用)
         EXECUTE  msdb.dbo.sysmail_delete_principalprofile_sp
            
@principal_id   =   0
            ,
@profile_name   =   @profileName ;
        
EXEC  msdb.dbo.sysmail_delete_profile_sp  @profile_name   =   @profileName
     END ;          
    
DECLARE   @profileId   int ;
    
EXECUTE  msdb.dbo.sysmail_add_profile_sp
        
@profile_name   =   @profileName ,
        
@description    =   @profileDescription ,
        
@profile_id     =   @profileId  OUTPUT;
    
SELECT   @profileId ;
    
-- 将配置文件变为公用配置
     EXECUTE  msdb.dbo.sysmail_add_principalprofile_sp
        
@principal_id    =   0
        ,
@profile_id   =   @profileId
        ,
@is_default   =   1 ;
     SELECT   @resultStatus = last_mod_datetime  FROM  msdb.dbo.sysmail_account 
    
WHERE   [ name ] = @accountName ;
    
IF  ( @resultStatus   IS   NOT   NULL )
    
BEGIN
        
EXEC  msdb.dbo.sysmail_delete_account_sp  @account_name   =   @accountName ;
    
END ;     
    
DECLARE   @accountId   int ;
    
EXECUTE  msdb.dbo.sysmail_add_account_sp
        
@account_name      =   @accountName ,
        
@description       =   @accountDescription ,
        
@email_address     =   @mailAddress ,
        
@display_name      =   @mailDisplayName ,
        
@mailserver_name   =   @mailServer ,
        
@account_id        =   @accountId  OUTPUT;
    
SELECT   @accountId ;
     DECLARE   @maxAccountId   int ;
    
SELECT   @maxAccountId   =   ISNULL ( MAX (account_id), 0 +   1
    
FROM  msdb.dbo.sysmail_profileaccount
    
WHERE  profile_id  =   @profileId ;
          
    
EXECUTE  msdb.dbo.sysmail_add_profileaccount_sp
        
@profile_id   =   @profileId ,
        
@account_id   =   @accountId ,
        
@sequence_number   =   @maxAccountId ;
    
IF  ( @@ERROR   <>   0 )
    
BEGIN
        
ROLLBACK   TRANSACTION ;
    
END
    
ELSE
    
BEGIN
        
COMMIT   TRANSACTION ;
    
END ;
END
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值