Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Ubah Pemisah menjadi Koma saat Mengirim Hasil Kueri melalui Email di SQL Server (T-SQL)

Jika Anda pernah menggunakan Database Mail SQL Server untuk mengirim email hasil kueri, Anda mungkin memperhatikan bahwa hasilnya dipisahkan oleh spasi secara default.

Ini baik-baik saja jika Anda ingin kumpulan hasil yang dipisahkan spasi, tetapi bagaimana jika Anda ingin hasil dipisahkan dengan koma?

Untungnya Anda dapat menggunakan @query_result_separator argumen untuk melakukan hal itu. Anda dapat menggunakan argumen ini untuk menentukan pemisah apa pun (asalkan itu adalah char(1) ).

Contoh

Berikut ini contoh untuk mendemonstrasikan cara mengubah pemisah menjadi koma:

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

Hasil:

Kandidat potensial untuk pekerjaan Admin, mungkin?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(5 baris terpengaruh) 

Perhatikan bahwa saya juga menggunakan @query_result_no_padding argumen untuk menghapus padding yang mungkin diterapkan pada hasil.

Anda juga dapat menggunakan @attach_query_result_as_file = 1 untuk melampirkan hasilnya dalam file terpisah jika diperlukan.

Contoh menggunakan Pemisah Ruang Default

Jika saya menghapus @query_result_separator = ',' bagian dari contoh di atas, hasil saya dipisahkan oleh karakter spasi default.

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

Hasil:

Kandidat potensial untuk pekerjaan Admin, mungkin?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(5 baris terpengaruh)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DevOps:DBA atau Pengembang – Mendapatkan Keseimbangan dengan Benar

  2. Bergabung dengan MAX catatan tanggal dalam grup

  3. Buat Pemicu "Alih-alih" di SQL Server

  4. Cara menggunakan Operator Logika EXISTS di SQL Server - Tutorial SQL Server / TSQL Bagian 125

  5. Cara menghitung usia (dalam tahun) berdasarkan Tanggal Lahir dan getDate()