Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Променете разделителя на запетая, когато изпращате по имейл резултати от заявка в SQL Server (T-SQL)

Ако някога сте използвали Database Mail на SQL Server, за да изпратите по имейл резултатите от заявка, може да сте забелязали, че резултатите са разделени с интервал по подразбиране.

Това е добре, ако искате набор от резултати, разделен с интервал, но какво ще стане, ако искате той да бъде разделен със запетая?

За щастие можете да използвате @query_result_separator аргумент за това. Можете да използвате този аргумент, за да посочите всеки разделител (стига да е char(1) ).

Пример

Ето пример, за да демонстрирате как да промените разделителя на запетая:

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'; 

Резултат:

Потенциални кандидати за работа на администратор, може би? ArtistId,ArtistName,ActiveFrom--------,----------,----------1,Iron Maiden,1975-12-252,AC/DC,1973-01-113,Алан Холдсуърт,1969-01-014,Бъди Рич,1919-01-015,Девин Таунсенд,1993-01-01(5 реда засегнати) 

Забележете, че също използвам @query_result_no_padding аргумент за премахване на всякакво подпълване, което може да бъде приложено към резултатите.

Можете също да използвате @attach_query_result_as_file = 1 за да прикачите резултатите в отделен файл, ако е необходимо.

Пример за използване на разделителя на интервали по подразбиране

Ако премахна @query_result_separator = ',' част от горния пример, моите резултати са разделени със символа за интервал по подразбиране.

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'; 

Резултат:

Потенциални кандидати за администраторска работа, може би? ArtistId ArtistName ActiveFrom-------- ---------- ----------1 Iron Maiden 1975-12- 252 AC/DC 1973-01-113 Алън Холдсуърт 1969-01-014 Бъди Рич 1919-01-015 Девин Таунсенд 1993-01-01 (5 реда засегнати)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да коригирате „Изразът EXECUTE не бе успешен, защото неговата клауза WITH RESULT SETS посочва 1 набор(а) резултата...“ в SQL Server

  2. ВЪВЕТЕ СТОЙНОСТИ, КЪДЕТО НЕ СЪЩЕСТВУВА

  3. Len() срещу datalength() в SQL Server 2005

  4. Има ли разлика между DateTime в C# и DateTime в SQL сървър?

  5. Редът на оператор SQL Select без клауза Order By