美文网首页.NET相关技术
SqlServer存储过程-动态SQL语句拼接邮箱

SqlServer存储过程-动态SQL语句拼接邮箱

作者: Grom_Li | 来源:发表于2020-03-09 02:30 被阅读0次

    介绍

    碰到过一个需求,需要查询指定人后群发邮,所以要拼接邮件的接收人,因为可以公用所以封装成存储过程。
    因为游标查询的语句是动态,所以可以这样处理,将声明游标和查询语句拼接出来后再一起用 EXEC sp_executesql 函数执行,最后没有去掉拼接的分号因为邮箱可以识别,其他的拼接也可以用这个例子进行演化。

    创建存储过程

    CREATE PROCEDURE proc_JointReceiver
    (
        @sql nvarchar(400),
        @Receiver nvarchar(400) OUTPUT
    )
    AS
    BEGIN
        DECLARE @Result nvarchar(400) = ''
        DECLARE @User nvarchar(100)
        SET @sql = 'DECLARE Cur_Joint CURSOR FOR '+ @sql
        EXEC sp_executesql @sql
        OPEN Cur_Joint
        FETCH NEXT FROM Cur_Joint INTO @User
        WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @Result += @User + ';'
            FETCH NEXT FROM Cur_Joint INTO @User
        END
        CLOSE Cur_Joint
        DEALLOCATE Cur_Joint
    
        SET @Receiver = @Result
    END
    

    调用

    declare @Receiver nvarchar(max)
    exec proc_JointReceiver 'select Email from User ',@Receiver output
    select @Receiver
    

    相关文章

      网友评论

        本文标题:SqlServer存储过程-动态SQL语句拼接邮箱

        本文链接:https://www.haomeiwen.com/subject/dlwedhtx.html