SQL Server 2008 DBMail

¿Alguien podría ayudar en el siguiente procedimiento almacenado? estoy recibiendo un error

Sintaxis incorrecta cerca de '@profile_name'" SELECCIONE distinto(EmailAddress) como DESTINATARIOS, @body = Reemplazar(@bodypre, "$Approver", Forename) FROM [STAS].[dbo].[NotifictationEmailID_View]

en la consulta

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

que es parte de este procedimiento almacenado:

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

Gracias,

preguntado el 03 de mayo de 12 a las 16:05

¿QUÉ error te sale? Por favor publique el mensaje de error completo y detallado... no somos lectores de mentes, ni podemos ver su pantalla.... -

¿Alguien podría ayudar en el siguiente procedimiento almacenado? Recibo un error en la siguiente consulta como "Sintaxis incorrecta cerca de '@profile_name'" SELECCIONE distinto (Dirección de correo electrónico) como DESTINATARIOS, @cuerpo = Reemplazar(@bodypre, "$Aprobador", Nombre) DE [STAS].[dbo]. [NotificaciónEmailID_View] -

1 Respuestas

Prueba esto:

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

DISTINCT no es una función a la que pueda llamar como lo hizo, es una palabra clave de SQL.

contestado el 03 de mayo de 12 a las 16:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.