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
Другие вопросы по тегам