2

こんにちは、誰かこれを手伝ってくれませんか?

 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/からのものです

ありがとう

4

2 に答える 2

3

私がお勧めする最初のことは、名前付きパラメーターを使用することです。これにより、ストアド プロシージャは、どのパラメーターがどこに行くのかを正確に認識します。

   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

于 2012-11-16T15:24:18.387 に答える
0

名前付きパラメーターを使用しない場合 (Farfarak が上で書いているように)、パラメーターをスキップすることはできません (ただし、すべてを使用する必要はありません)。順序は次のとおりです。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
于 2013-02-17T17:18:19.950 に答える