sql >> Databáze >  >> RDS >> Sqlserver

Změňte oddělovač na čárku při odesílání výsledků dotazu e-mailem na SQL Server (T-SQL)

Pokud jste někdy použili databázovou poštu serveru SQL Server k odeslání výsledků dotazu e-mailem, možná jste si všimli, že výsledky jsou ve výchozím nastavení odděleny mezerou.

To je v pořádku, pokud chcete sadu výsledků oddělenou mezerami, ale co když chcete, aby byla oddělena čárkami?

Naštěstí můžete použít @query_result_separator argument udělat právě to. Tento argument můžete použít k zadání libovolného oddělovače (pokud je to znak(1) ).

Příklad

Zde je příklad, který ukazuje, jak změnit oddělovač na čárku:

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'Potential candidates for an Admin job, perhaps?',
    @query = 'SELECT TOP(5) * FROM Artists;',
    @execute_query_database = 'Music',
    @query_result_separator = ',',
    @query_result_no_padding = 1,
    @subject = 'Query results as discussed'; 

Výsledek:

Potenciální kandidáti na pozici správce, možná?ArtistId,ArtistName,ActiveFrom--------,-----------,----------1,Iron Maiden,1975-12-252,AC/DC,1973-01-113,Allan Holdsworth,1969-01-014,Buddy Rich,1919-01-015,Devin Townsend,1993-01-01(dotčeno 5 řádků) 

Všimněte si, že také používám @query_result_no_padding argument k odstranění všech výplní, které by mohly být použity na výsledky.

Můžete také použít @attach_query_result_as_file = 1 v případě potřeby připojit výsledky v samostatném souboru.

Příklad použití výchozího oddělovače mezer

Pokud odstraním @query_result_separator = ',' část z výše uvedeného příkladu jsou mé výsledky odděleny výchozím znakem mezery.

EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'Potential candidates for an Admin job, perhaps?',
    @query = 'SELECT TOP(5) * FROM Artists;',
    @execute_query_database = 'Music',
    @query_result_no_padding = 1,
    @subject = 'Query results as discussed'; 

Výsledek:

Možná potenciální kandidáti na pozici správce?ArtistId ArtistName ActiveFrom-------- ---------- ----------1 Iron Maiden 1975-12- 252 AC/DC 1973-01-113 Allan Holdsworth 1969-01-014 Buddy Rich 1919-01-015 Devin Townsend 1993-01-01 (dotčeno 5 řádků)

  1. count(*) a count(název_sloupce), jaký je rozdíl?

  2. Čísla řádků s nedeterministickým pořadím

  3. Praktické použití funkce SQL COALESCE

  4. Jak se připojit ke vzdálené Oracle DB pomocí PL/SQL Developer?