SQL Server cung cấp một cách dễ dàng để gửi email kết quả của một truy vấn cho chính bạn (hoặc cho người khác).
Để gửi email bằng T-SQL, bạn cần sử dụng sp_send_dbmail
thủ tục được lưu trữ trong msdb cơ sở dữ liệu. Thủ tục này chấp nhận nhiều đối số, một trong số đó là @query
lý lẽ. Đó là đối số đính kèm kết quả truy vấn của bạn vào email.
Ví dụ
Dưới đây là một ví dụ cơ bản sử dụng tối thiểu các đối số:
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';
Theo mặc định, kết quả của truy vấn được liệt kê trong phần nội dung của email. Ngoài ra, bạn có thể gửi kết quả dưới dạng tệp đính kèm.
Xóa đệm
Nếu kết quả của bạn được định dạng với quá nhiều khoảng đệm trong các cột, bạn có thể sử dụng @query_result_no_padding = 1
để loại bỏ phần đệm này.
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';
Thêm kết quả truy vấn dưới dạng tệp đính kèm
Bạn có thể sử dụng @attach_query_result_as_file
đối số để thêm kết quả truy vấn dưới dạng tệp đính kèm. Điều này được chấp nhận một bit giá trị, với mặc định là 0
(không có tệp đính kèm).
Để gửi kết quả dưới dạng tệp đính kèm, chỉ cần cung cấp 1
cho đối số này.
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',
@attach_query_result_as_file = 1,
@query_attachment_filename = 'Artists.csv',
@query_result_header = 1,
@query_result_width = 256,
@query_result_separator = ',',
@exclude_query_output = 1,
@append_query_error = 1,
@query_no_truncate = 0,
@query_result_no_padding = 1,
@subject = 'Query results as discussed';
Trong ví dụ này, tôi đã thêm một số đối số khác.
@query_attachment_filename
đối số cho phép bạn chỉ định tên tệp của riêng mình (nếu bạn không cung cấp đối số này, Thư cơ sở dữ liệu sẽ tạo thành một đối số).
sp_send_dbmail
thủ tục chấp nhận nhiều đối số hơn tôi đã liệt kê ở đây. Xem tài liệu của Microsoft để biết danh sách đầy đủ các đối số và mô tả của chúng.
Định cấu hình Thư cơ sở dữ liệu
Các ví dụ trên trang này giả định rằng bạn đã bật và định cấu hình Thư cơ sở dữ liệu.
Nếu bạn chưa định cấu hình Thư cơ sở dữ liệu, hãy xem Cách gửi Email từ SQL Server. Bài viết đó cung cấp các ví dụ T-SQL để bật và cấu hình Thư cơ sở dữ liệu. Không mất nhiều thời gian.