2011-08-18 14 views
8

यह संग्रहीत प्रक्रिया लिखने का मेरा पहला प्रयास है जो किसी को ईमेल करता है।ईमेल भेजने के लिए SQL सर्वर संग्रहीत प्रक्रिया

Msg 102, Level 15, State 1, Procedure EmailTodaysErrors, Line 14 
Incorrect syntax near '@MailServer'. 
Msg 137, Level 15, State 2, Procedure EmailTodaysErrors, Line 26 
Must declare the scalar variable "@mailserver". 
Msg 137, Level 15, State 2, Procedure EmailTodaysErrors, Line 33 
Must declare the scalar variable "@Body". 

कोड है कि मैं जो खड़ी कर रहा है इस का उपयोग कर रहा है:

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

CREATE PROCEDURE EmailTodaysErrors 
@SenderName varchar(100), 
@SenderAddress varchar(100), 
@RecipientName varchar(100), 
@RecipientAddress varchar(100), 
@Subject varchar(200), 
@Body varchar(8000) 
@MailServer varchar(100) = 'localhost' 
AS 
SET NOCOUNT ON; 
declare @oMail int --Object reference 
declare @resultcode int 
EXEC @resultcode = sp_OACreate 'CDONTS.NewMail', @oMail OUT 

if @resultcode = 0 
BEGIN 
EXEC @resultcode = sp_OASetProperty @oMail, 'RemoteHost', @mailserver 
EXEC @resultcode = sp_OASetProperty @oMail, 'FromName', @SenderName 
EXEC @resultcode = sp_OASetProperty @oMail, 'FromAddress', @SenderAddress 
EXEC @resultcode = sp_OASetProperty @oMail, 'From', @SenderAddress 
EXEC @resultcode = sp_OASetProperty @oMail, 'To', @RecipientAddress 
EXEC @resultcode = sp_OASetProperty @oMail, 'Subject', @Subject 
EXEC @resultcode = sp_OASetProperty @oMail, 'Body', @Body 
EXEC @resultcode = sp_OAMethod @oMail, 'Send', NULL 
EXEC sp_OADestroy @oMail 
END 

set nocount off 
GO 

किसी भी मदद की बहुत सराहना की जाएगी जब निष्पादित करने के लिए कोशिश कर रहा इन त्रुटियों को मिलता है। अग्रिम में धन्यवाद।

उत्तर

11

@body लाइन के बाद आप एक कॉमा खो रहे हैं, जो आपकी घोषणाओं को फेंक रहा है।

इसे यहाँ जोड़ें:

@Body varchar(8000), -- HERE 
@MailServer varchar(100) = 'localhost' 
+0

धन्यवाद यह –

+0

मदद करने में खुश है। हमेशा अपने अल्पविराम और कोष्ठक की जांच करें! – JNK

11

मेल भेजने के लिए sp_oa_family का उपयोग न करें, SQL सर्वर के साथ पहले से ही एक अंतर्निहित समाधान है: Database Mail। बस अपने सर्वर पर डेटाबेस मेल को ठीक से कॉन्फ़िगर करें, फिर sp_send_dbmail पर कॉल करें।

+0

मैं इस विधि की कोशिश की और साथ ही, लेकिन मैं अटक जाते हैं जब यह कहते हैं प्रोफ़ाइल नाम मैं के रूप में मान्य –

+0

नहीं है कहा, * कॉन्फ़िगर करें * डेटाबेस मेल पहले: http://technet.microsoft.com/en-us/library/ms175951.aspx –

2

एक अल्पविराम अपने मानकों में लापता नहीं है:

@Body varchar(8000), ---- HERE 
@MailServer varchar(100) = 'localhost' 
संबंधित मुद्दे