zoukankan      html  css  js  c++  java
  • 一个存储过程包含了很多很多

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go

    ALTER proc [dbo].[CD_SendMailDate]
    @Sendfrequency int
    --exec CD_SendMailDate 2
    as
    declare @Email varchar(200),@key varchar(200),@Eproductkind1idstr varchar(200),@EmemberId int,@linkManFirstName varchar(200),@linkManLastName varchar(200),@UserName varchar(200)
    declare my_cursor cursor scroll
    for select distinct isnull(et.Email,'')as Email from EtradeAlert as et
        where Sendfrequency=@Sendfrequency and et.EmailActivationStatus = 1 and et.Email is not null and et.email<>'';
    --打开游标
        open my_cursor
    --创建临时表
    create table #SendData
    (
     EmemberId int,
     keyword varchar(200),
     EKind1Id1Str varchar(200),
     Email varchar(200),
     Linkmanfirstname varchar(200),
     Linkmanlastname varchar(200),
     UserName varchar(200),
     Sendfrequency int
    )
    --必须用FETCH语句来取得数据 可以传递参数
        fetch next from my_cursor into @Email
    --fetch_status=0一切正常
        while(@@fetch_status=0)
          begin
            if @Email<>''
             begin
              set @key=''
              set @Eproductkind1idstr=''
              select top 4 @EmemberId=EmemberId,@key= isnull(@key,'')+rtrim(ltrim(TradeAlertkeyword))+'@' ,@Eproductkind1idstr=isnull(@Eproductkind1idstr,'')+Eproductkind1idstr+'@',@linkManFirstName=linkmanfirstname,@linkManLastName=linkmanlastname,@UserName=username from
              (
               select Row_number() over(partition by TradeAlertkeyword order by EtradeAlert_id asc)as PK, isnull(Emember_id,0) EmemberId,isnull(linkmanfirstname,'') linkmanfirstname,isnull(linkmanlastname,'') linkmanlastname,username,isnull(et.Email,Emember.Email)as Email,TradeAlertkeyword,EtradeAlert_id,Eproductkind1idstr from EtradeAlert as et
               left join Emember on (et.Email=Emember.Email)
               where Sendfrequency=@Sendfrequency and TradeAlertkeyword is not null and TradeAlertkeyword!='' and IsSend=1 and et.Email=@Email
              ) as T
              where PK=1 order by EtradeAlert_id desc
             if @key != ''
                 --select @EmemberId as EmemberId,@key as keyword,@Eproductkind1idstr as EKind1Id1Str,@Email as Email
                 insert into #SendData values(@EmemberId,@key,@Eproductkind1idstr,@Email,@linkManFirstName,@linkManLastName,@UserName,@Sendfrequency);
              end
              fetch next from my_cursor into @Email
          end
    --关闭游标
        close my_cursor
    --删除游标资源
        deallocate my_cursor
        select * from #SendData













  • 相关阅读:
    JavaScript算法系列之-----------------斐波那契数列(JS实现)
    js中Math.max()求取数组中最大值
    JavsScript中比较大小总结---基于sort()方法
    前端技能大挑战-3(修改this指向)
    前端技能大挑战-2(数组去重)
    前端技能大挑战-1(驼峰命名)
    JavaScript算法系列之-----------------链表反转(JS实现)
    JavaScript算法系列之-----------------字符串排列(JS实现)
    JavaScript算法系列之-----------------替换空格(JS实现)
    JavaScript算法系列之-----------------二维数组中的查找(JS实现)
  • 原文地址:https://www.cnblogs.com/ChengDong/p/2163637.html
Copyright © 2011-2022 走看看