2012-05-03 60 views
0

任何人都可以幫助下面的存儲過程?我收到錯誤SQL Server 2008 DBMail

附近有語法錯誤@profile_name'」 SELECT DISTINCT()移轉 作爲收件人,@body =替換(@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

**你得到了什麼**錯誤?請發佈完整詳細的錯誤消息...我們不介意讀者,也不能看到你的屏幕.... –

+0

任何人都可以幫助下面的存儲過程? **我在下面的查詢中遇到錯誤:「@profile_name附近的語法錯誤」「SELECT distinct(EmailAddress)as 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

謝謝,開始工作如下。 –