2012-05-03 26 views
0

誰でも以下のストアドプロシージャを手助けできますか?私は [STAS] FROM「($承認者 "Forename @bodypreを、)を交換= RECIPIENTSとして (EmailAddressの)明確なを選択、@body" '@profile_name' 付近にエラーSQL Server 2008 DBMail

不適切な構文を取得しています。[DBOこのストアドプロシージャの一部であるクエリ

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

における[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

**何かエラーがありますか?完全で詳細なエラーメッセージを投稿してください...私たちは読者に気付かず、またあなたの画面を見ることもできません.... –

+0

誰かが以下のストアドプロシージャを助けることができますか? **下のクエリで、「@profile_name 'の近くに構文が正しくない」というエラーが表示されています。RECIPIENTS、@body =(@bodypre、 "$ Approver"、Forename)FROM [STAS] ]。[NotifictationEmailID_View] ** –

答えて

0

はこれを試してみてください:

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

DISTINCTあなたがやったようにあなたが呼び出すことができる機能ではありません - それは、SQLキーワードです。

+0

ありがとうございます。下記のように作業を開始しました。 –