sql >> Database >  >> RDS >> Sqlserver

Padding verwijderen bij het verzenden van queryresultaten in een e-mail van SQL Server (T-SQL)

Wanneer u de sp_send_dbmail . gebruikt opgeslagen procedure om e-mails vanuit SQL Server te verzenden, hebt u de mogelijkheid om queryresultaten aan de e-mail toe te voegen.

Wanneer u dit doet, is het mogelijk dat aan sommige kolommen ongewenste opvulling is toegevoegd. Gelukkig kun je deze opvulling elimineren met de @query_result_no_padding argument.

Vóór

Hier is een voorbeeld van hoe de resultaten eruit zouden kunnen zien met opvulling.

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',
    @subject = 'Query results as discussed';

Resultaat:

Potential candidates for an Admin job, perhaps?
ArtistId    ArtistName                                                
           ActiveFrom      
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------- ----------------
         1 Iron Maiden                                                   
                 1975-12-25
         2 AC/DC                                                          
                 1973-01-11
         3 Allan Holdsworth                                           
                 1969-01-01
         4 Buddy Rich                                                    
                 1919-01-01
         5 Devin Townsend                                            
                 1993-01-01

(5 rows affected)

In dit geval is er zoveel opvulling aan de hand dat alles doorloopt naar de volgende regel en de koppen niet overeenkomen met de gegevens.

Na

Hier is een voorbeeld van hoe de resultaten eruit zien nadat ik de opvulling heb verwijderd.

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',
    @subject = 'Query results as discussed';

Resultaat:

Potential candidates for an Admin job, perhaps?
ArtistId ArtistName ActiveFrom
-------- ---------- ----------
1 Iron Maiden 1975-12-25
2 AC/DC 1973-01-11
3 Allan Holdsworth 1969-01-01
4 Buddy Rich 1919-01-01
5 Devin Townsend 1993-01-01

(5 rows affected)


  1. Geen ondersteuning voor OVER in MS SQL Server 2005?

  2. Hoe gebruik je de %-operator van de extensie pg_trgm?

  3. Twee-factorenauthenticatie inschakelen voor ScaleGrid DBaaS

  4. Installeer Web Server in Windows XP met Apache2, PHP5 en MySQL4 – Deel 1