技术填坑记

人生就是不断的填坑,再填坑,下面的填坑记录说不定就能帮助你。

1)SQL server 自带发email功能

    测试发给我自己,一切看起来正常。发给小组成员,每个人都能收到了,看起来今天终于可以正常下班了。

    可是,测试环境(当然会将所有人的邮件都设定为我们测试小组的成员了)发给某种类型的人的时候,程序不工作了。当初使用的update语句是自己编写的,当然不存在邮箱格式错误的可能。

    真是百思不得琪姐啊,只好在小组里面找之前踩过坑的同事了解,询问是否碰到过同样的问题,还好的是我们IT人员都没有藏着掖着的,大家回想当初自己的做法,感觉也没什么解决之道,只好又跑回来摸索。

    过了十几分钟,有个同事过来说,好像之前遇到过,to和CC中email不能重复,我使用的是本组成员设定的,当然是大量重复,所以系统就根本不发。

   于是就使用去重的程式如下:

   

/****** Object:  UserDefinedFunction [dbo].[ProcessEmail]    Script Date: 09/23/2016 16:17:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[ProcessEmail](
  @EmailInput varchar(8000))
returns varchar(8000)  
as  
begin  
    declare @value varchar(8000)
    set @value=''
    select @value=@value+col+';' from (
        select distinct  col
        from f_split(@EmailInput,';') where col!='') as a
    return @value
end  


ALTER  function   [dbo].[f_split](@c   varchar(8000),@split   varchar(10))  
returns   @t   table(col   varchar(100))  
as  
    begin  
   
      while(charindex(@split,@c)<>0)  
        begin  
          insert   @t(col)   values   (substring(@c,1,charindex(@split,@c)-1))  
          set   @c   =   stuff(@c,1,charindex(@split,@c)+len(@split)-1,'')  
        end  
      insert   @t(col)   values   (@c)  
      return  
    end

修改之后,世界就清静了。

 

 

 

 

 

 

 

 

 

 

 

 

   

   

posted @ 2016-09-23 16:20  老飞飞  阅读(216)  评论(0编辑  收藏  举报