Jak Konwertowanie procedur przechowywanych z SQL Poczta Poczta bazy danych (Transact-SQL)

Baza danych pozwala poczty, wysyłanie wiadomości e-mail z SQL Server.Użyj procedura składowana sp_send_dbmail do wysyłania wiadomości e-mail.Ta procedura wymaga argumentów podobne argumenty xp_sendmail.Dlatego konwertowanie procedury, która korzysta z xp_sendmail do używania sp_send_dbmail jest proste.

Najważniejszy parametr dodatkowe dla sp_send_dbmail jest profilu poczty opcjonalne do wysłania wiadomości.Utwórz profil poczty bazy danych za pomocą Kreator konfiguracji poczty bazy danych, lub poczta bazy danych przechowywane procedury.Tylko msdb bazy danych może być bazy danych na hoście poczty.

Aby przekonwertować procedura składowana z poczty SQL Poczta bazy danych

  1. Jeśli nie jest jeszcze włączony, należy włączyć poczty bazy danych.Aby włączyć poczty bazy danych, użyj Kreator konfiguracji poczty bazy danych.

  2. Utwórz profil poczty bazy danych, jeśli nie masz już profil utworzony.Aby uzyskać więcej informacji na temat tworzenia profilu poczty bazy danych, zobacz Jak Tworzenie profilów prywatnych poczty bazy danych (Transact-SQL).

  3. Zastąpić wywołanie xp_sendmail z wywołaniem sp_send_dbmail.Mapowanie argumenty z xp_sendmail do sp_send_dbmail jak pokazano w poniższej tabela.

Argument xp_sendmail

Argument sp_send_dbmail

@ adresatów

@ adresatów

@ wiadomości

@ ciała

@ kwerendy

@ kwerendy

@ załączników

@ file_attachments

@ copy_recipients

@ copy_recipients

@ blind_copy_recipients

@ blind_copy_recipients

@ tematu

@ tematu

@ type

Brak

@ attach_results

@ attach_query_result_as_file

@ no_output

@ exclude_query_output

@ no_header

@ query_result_header

@ szerokość

@ query_result_width

@ separatora

@ query_result_separator

@ echo_error

Brak

@ set_user

Brak

@ dbuse

@ execute_query_database

  1. Podczas aktualizowania procedury należy rozważyć następujące różnice:

    • Nie wpisywać wiadomości MAPI jest dostępna.Ponieważ bazy danych poczty nie używa Extended MAPI, procedura składowana, nie zestaw typ komunikatu.

    • Jeśli @ kwerendy podano parametr błędy z kwerendy są zwracane do sesja o nazwie sp_send_dbmail.

    • Jeśli @ kwerendy dostarczonych parametru, kwerenda jest uruchamiana jako użytkownik bieżący.Jednak kwerenda może zawierać dowolny prawidłowy Transact-SQL, łącznie z instrukcji EXECUTE jako.

    • Poczta bazy danych obsługuje następujące opcje, które nie są obsługiwane w programie SQL poczta:

    Argument sp_send_dbmail

    Opis

    @ nazwa_profilu

    Określa profil poczty dla wiadomości.Poczta bazy danych obsługuje wiele profilów i wielu kont dla każdego profilu zapewnić niezawodność i skalowalność.@ Profilu mogą zostać pominięte, jeśli profil domyślny dla poczty hosta z bazy danych lub użytkownik wywołujący sp_send_dbmail.

    @ body_format

    Określa format wiadomości e-mail, tekst lub HTML.

    @ znaczenie

    Określa znaczenie dla wiadomości e-mail.

    @ czułości

    Określa czułość wiadomości e-mail.

    @ query_attachment_filename

    Określa nazwę pliku podczas wyniki kwerendy są dołączone jako plik.If you use the xp_sendmail @query parameter with @attach_results = TRUE, the @attachments parameter can specify only one file to attach to the mail message.sp_send_dbmail has both @file_attachments and

    @ query_attachment_filename.

Przykład

W poniższym przykładzie użyto poczty programu SQL, aby wysłać wiadomość do danw@Adventure-Works.com.

EXEC master.dbo.xp_sendmail 
    @recipients=N'danw@Adventure-Works.com',
    @message=N'The master database is full.' ;

W przykładzie poniżej używa poczty bazy danych i domyślnego profilu bieżącego użytkownika wysłać tę samą wiadomość:

EXEC msdb.dbo.sp_send_dbmail
    @recipients=N'danw@Adventure-Works.com',
    @body=N'The master database is full.' ;

Należy zauważyć, że procedura działa w msdb bazy danych.