首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server 2008 DBMail

Server 2008 DBMail
EN

Stack Overflow用户
提问于 2012-05-03 15:16:43
回答 1查看 170关注 0票数 0

有人能在下面的存储过程方面提供帮助吗?我搞错了

在“@profile_name”附近不正确的语法“选择distinct(EmailAddress)作为收件人,@body =Replace(@body FROM,"$Approver",Forename)从STAS.dbo.NotifictationEmailID_View

在查询中

代码语言:javascript
复制
SELECT distinct(EmailAddress) as RECIPIENTS,
      @body = Replace(@bodypre, "$Approver", Forename) 
FROM [STAS].[dbo].[NotifictationEmailID_View]   

它是本存储过程的一部分:

代码语言:javascript
复制
ALTER proc [dbo].[test]
as
begin
DECLARE @subject VARCHAR(500)
Declare @bodypre varchar(5000)
DECLARE @ProgramName VARCHAR(50)
DECLARE @FirstName VARCHAR(50)
DECLARE @body VARCHAR(5000)
DECLARE @email VARCHAR(500)
declare @recipients VARCHAR(5000)
DECLARE @CurrentRec AS INT
DECLARE @RecCount AS INT
Declare @emailStop  as int
SET @CurrentRec = 1
SET @RecCount = 0

select @subject=EmailMessageSubject,
        @bodypre = EmailMessageBody,
        @emailStop = EmailStop_Flag
from STAS.dbo.MC_STAS_EmailMessage where TimeSheetStatusID = 3 

SELECT @RecCount = COUNT(EmailAddress) FROM [STAS].[dbo].[NotifictationEmailID_View] 
if (@emailStop <> 1 AND @RecCount > 0)
    WHILE @RecCount >= @CurrentRec
    begin   
    EXEC msdb.dbo.sp_send_dbmail
    SELECT distinct(EmailAddress) as RECIPIENTS ,@body =Replace(@bodypre,"$Approver",Forename) from [STAS].[dbo].[NotifictationEmailID_View]                    
        @profile_name = "STAS Email User",
        @recipients = @RECIPIENTS,
        @subject = @SUBJECT,
        @body = @body

    SET @CurrentRec = @CurrentRec + 1
end
end

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-03 15:29:19

试试这个:

代码语言:javascript
复制
SELECT DISTINCT 
      EmailAddress as RECIPIENTS,
      @body = Replace(@bodypre, "$Approver", Forename) 
FROM [STAS].[dbo].[NotifictationEmailID_View]   

DISTINCT不是您可以像以前那样调用的函数--它是一个SQL关键字。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10434330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档