解决方案 »

  1.   

    1.也就是将合法的邮件地址写入t_email表,
    2.将合法的而且有重复的写入t_duplicate表,
    3.将错误的邮件地址写入t_error表,
    ------------
    不知道你的数据库版本是否可以使用正则来出来啦?
    其它思路,
    1.先过滤掉不是形如[email protected],[email protected],[email protected]之类的,
    2.在1的基础上在根据你列出来的判断条件判断,
      

  2.   

    对,sql 2005功能强大,自己就可以发邮件,不像2000还要捆绑outlook,通过邮件服务器中转,但是如果企业有exchage的话,应该还不错
      

  3.   

    邮件验证可以放在界面上用正则表达式进行验证,
    再分类存到各个表中。
    在存储过程里进行正则验证似乎不是sql的专长。
    看看高手们怎么说。
      

  4.   

    ms sql 2000 是否支持正则?
      

  5.   

    create function getemail(@m varchar(8000))
    returns int
    as
    begin
      declare @mm varchar(8000),@y varchar(8000),@d varchar(8000)
      declare @i int
      if @m is null return 2
      select @mm = rtrim(ltrim(@m))
      select @i = charindex('@',@mm)
      if @i < 2 then return 2
      select @y=right(@mm,@i-1),@d = left(@mm,len(@mm)-@i)
      if patindex('[0-9a-zA-Z]',@y)<>1 then return 2
      if patindex('%^[0-9a-zA-Z.-_]%',@y)>0 then return 2
      if patindex('[0-9a-zA-Z]',@d)<>1 then return 2
      if patindex('%^[0-9a-zA-Z.-]%',@d)>0 then return 2
      if (select count(*) from tb where rtrim(ltrim(email))=@mm)>=1 return 1
      return 0
    end
    go
    insert email select * from tb where dbo.getemail(email)=0
    insert error select * from tb where dbo.getemail(email)=2
    insert dup select * from tb where dbo.getemail(email)=1
    insert email select distinct * from dup
      

  6.   


    SQL编程简洁的艺术
    正式我要学习的
      

  7.   

    1、   
       study
       支持
      

  8.   

    1、  
      study 
      支持 
      

  9.   

    1、  
      study 
      支持