2012-05-03 9 views
0

Может ли кто-нибудь помочь в приведенной ниже хранимой процедуре? Я получаю ошибкуSQL Server 2008 DBMail

Неправильный синтаксис около "@profile_name» SELECT DISTINCT (EmailAddress) в качестве реципиентов, @body = Replace (@bodypre, "$ утверждающий", Имя) FROM [STAS]. [DBO .] [NotifictationEmailID_View]

в запросе

SELECT distinct(EmailAddress) as RECIPIENTS, 
     @body = Replace(@bodypre, "$Approver", Forename) 
FROM [STAS].[dbo].[NotifictationEmailID_View] 

, который является частью этой хранимой процедуры:

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 

Спасибо,

+1

** WHAT ** ошибка вы получаете? Пожалуйста, опубликуйте полное и подробное сообщение об ошибке ... мы не читаем читателей, и мы не можем увидеть ваш экран. –

+0

Не могли бы вы помочь в приведенной ниже процедуре? ** Я получаю ошибку в следующем запросе как «Неверный синтаксис рядом с« @profile_name »« SELECT different (EmailAddress) в качестве RECIPIENTS, @body = Replace (@bodypre, «$ Approver», Forename) FROM [STAS]. [Dbo ]. [NotifictationEmailID_View] ** –

ответ

0

Попробуйте это:

SELECT DISTINCT 
     EmailAddress as RECIPIENTS, 
     @body = Replace(@bodypre, "$Approver", Forename) 
FROM [STAS].[dbo].[NotifictationEmailID_View] 

DISTINCT не функция, которую вы можете назвать, как вы сделали - это SQL ключевое слово.

+0

спасибо, начал работать, как показано ниже. –