MS SQL отправить почту
Привет, кто-нибудь может помочь мне с этим, пожалуйста?
declare @account_name varchar(128) = 'Test Mail Account'
declare @description varchar(128) = 'Mail account for administrative e-mail.'
declare @email_address varchar(128) = 'abc@xyz.com'
declare @replyto_address varchar(128) = 'abc@xyz.com'
declare @display_name varchar(128) = 'Manoj Pandey'
declare @mailserver_name varchar(128) = 'smtp.xxxx.net'
declare @port int = 587
declare @username nvarchar(128)= 'xyz'
declare @password varchar(128) = 'xxyyzz'
declare @enable_ssl int = 1
EXECUTE [msdb].[dbo].[sysmail_add_account_sp]
@account_name,
@description,
@email_address,
@replyto_address,
@display_name,
@mailserver_name,
@port,
@username,
@password,
@enable_ssl
дайте мне сообщение об ошибке:
"Сообщение 8114, уровень 16, состояние 1, процедура sysmail_add_account_sp, строка 0 Ошибка преобразования типа данных nvarchar в int. "
Я не могу узнать почему?
Источник взят из http://sqlwithmanoj.wordpress.com/2010/09/29/database-mail-setup-sql-server-2005/
Спасибо
2 ответа
Во-первых, я бы порекомендовал использовать именованные параметры, чтобы хранимый процесс точно знал, куда и куда направляется параметр
EXECUTE [msdb].[dbo].[sysmail_add_account_sp]
@account_name=@account_name,
@description=@description,
.....
А также в соответствии с MSDN выглядит, что порядок их передачи неверен http://technet.microsoft.com/en-us/library/ms182804(v=sql.90).aspx
Если вы не используете именованные параметры (как пишет Фарфарак выше), то вы не можете пропустить ни один из параметров (хотя вам не нужно использовать все из них). Порядок следующий: см. http://technet.microsoft.com/en-us/library/ms182804.aspx
sysmail_add_account_sp [ @account_name = ] 'account_name',
[ @email_address = ] 'email_address' ,
[ [ @display_name = ] 'display_name' , ]
[ [ @replyto_address = ] 'replyto_address' , ]
[ [ @description = ] 'description' , ]
[ @mailserver_name = ] 'server_name'
[ , [ @mailserver_type = ] 'server_type' ]
[ , [ @port = ] port_number ]
[ , [ @username = ] 'username' ]
[ , [ @password = ] 'password' ]
[ , [ @use_default_credentials = ] use_default_credentials ]
[ , [ @enable_ssl = ] enable_ssl ]
[ , [ @account_id = ] account_id OUTPUT ]
Кроме того, строка объявления enable_ssl должна быть следующей:
declare @enable_ssl bit = 1