Tsql 通过存储过程发送电子邮件失败

Tsql 通过存储过程发送电子邮件失败,tsql,stored-procedures,sql-server-2008-r2,Tsql,Stored Procedures,Sql Server 2008 R2,我有一个TestEmail表,有两列:Ename、ecoount。通过使用此表,我尝试向用户发送电子邮件。如果Ecount大于3,则脚本将退出,并且不会发生任何事情 一个用户只会收到三次电子邮件。但是我的功能失败了,我无法找出哪里出了问题。我的脚本没有抛出任何错误,但也不起作用 马克的编辑对我很有用。在我写这个问题的时候,我对TSQL编程一无所知。 尽管我问题中的代码运行良好,但这里有一个通过SQl server发送电子邮件的精彩教程 这里有一个线索-你认为这是什么?我认为marc的编辑非常清楚

我有一个TestEmail表,有两列:Ename、ecoount。通过使用此表,我尝试向用户发送电子邮件。如果Ecount大于3,则脚本将退出,并且不会发生任何事情


一个用户只会收到三次电子邮件。但是我的功能失败了,我无法找出哪里出了问题。我的脚本没有抛出任何错误,但也不起作用

马克的编辑对我很有用。在我写这个问题的时候,我对TSQL编程一无所知。 尽管我问题中的代码运行良好,但这里有一个通过SQl server发送电子邮件的精彩教程


这里有一个线索-你认为这是什么?我认为marc的编辑非常清楚……返回立即退出所有内容。现在它开始工作了如果您在用户电子邮件计数大于3时给出有关退出此脚本的更多提示,我将不胜感激。我感谢马克。
DECLARE 
    @id nvarchar(MAX),
    @Counter int,
    @CheckCount int

DECLARE CC1 CURSOR READ_ONLY
FOR
    SELECT Ename, Ecount
    FROM TestDB.dbo.TestEmail

OPEN CC1

FETCH NEXT FROM CC1 INTO @id, @Counter

WHILE @@FETCH_STATUS = 0
BEGIN
    Begin
    EXEC msdb.dbo.sp_send_dbmail
         @profile_name = 'Bob',
         @recipients = @id,
         @body = 'The stored procedure finished successfully. #$%',
         @subject = 'Automated Success Message' ;

    update TestDB.dbo.TestEmail 
    set Ecount = Ecount + 1 
    where Ename = @id 

    print @id
END

Select 
    @CheckCount = Ecount 
from TestDB.dbo.TestEmail 
where Ename = @id

print @CheckCount

If @CheckCount > 3
Begin
    exec msdb.dbo.sp_update_job @job_id = N'6a81d6b3-af2d-4a27-b688-b9c69098f840', @enabled = 0
    return
    PRINT 'Count reached 3+'
End 

FETCH NEXT FROM CC1 INTO @id, @Counter
END

CLOSE CC1
DEALLOCATE CC1