Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tăng kích thước tệp đính kèm được phép khi gửi email trong SQL Server (T-SQL)

Khi bạn sử dụng Thư cơ sở dữ liệu để gửi email có tệp đính kèm, bạn cần đảm bảo rằng kích thước tệp đính kèm nằm trong kích thước tệp đính kèm cho phép.

Nếu bạn cần gửi tệp đính kèm lớn hơn giới hạn tệp đính kèm, bạn sẽ cần tăng giới hạn đó.

May mắn thay, việc tăng kích thước tệp đính kèm được phép có thể được thực hiện bằng một dòng mã T-SQL.

Lỗi

Đây là lỗi bạn sẽ gặp phải nếu cố gửi một tệp đính kèm lớn hơn kích thước tệp đính kèm cho phép:

Msg 22051, Level 16, State 1, Line 0
File attachment or query results size exceeds allowable value of 1000000 bytes.

Kiểm tra giới hạn

Nếu bạn vẫn chưa nhận được lỗi, bạn có thể không biết giới hạn là gì. Bạn có thể sử dụng sysmail_help_configure_sp thủ tục được lưu trữ trong msdb cơ sở dữ liệu để kiểm tra giới hạn kích thước tệp đính kèm.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Kết quả:

+-------------+--------------+---------------------------+
| paramname   | paramvalue   | description               |
|-------------+--------------+---------------------------|
| MaxFileSize | 1000000      | Default maximum file size |
+-------------+--------------+---------------------------+

Trong ví dụ này, tôi đã chuyển MaxFileSize như một đối số để thu hẹp kết quả thành chỉ tùy chọn cấu hình mà tôi quan tâm. Bạn cũng có thể sử dụng sysmail_help_configure_sp thủ tục không có bất kỳ đối số nào để trả về tất cả các tùy chọn cấu hình.

Thay đổi giới hạn

Bạn có thể thay đổi giới hạn kích thước tệp đính kèm bằng sysmail_configure_sp thủ tục được lưu trữ.

EXEC msdb.dbo.sysmail_configure_sp 'MaxFileSize','3000000';

Bây giờ khi chúng ta thực thi sysmail_help_configure_sp một lần nữa, chúng tôi thấy giá trị mới.

EXEC msdb.dbo.sysmail_help_configure_sp 'MaxFileSize';

Kết quả:

+-------------+--------------+---------------------------+
| paramname   | paramvalue   | description               |
|-------------+--------------+---------------------------|
| MaxFileSize | 3000000      | Default maximum file size |
+-------------+--------------+---------------------------+

Lưu ý rằng mô tả đã được giữ nguyên. Trong trường hợp này, nó hơi gây hiểu lầm vì 1000000 là kích thước tệp tối đa mặc định - không phải 4000000.

Bạn có thể thay đổi mô tả với quy trình tương tự. Trên thực tế, bạn có thể chỉ định tham số name=value các cặp, nếu bạn thích (điều này cũng đúng với sysmail_configure_sp thủ tục).

Hãy làm lại lần nữa, nhưng lần này tôi sẽ cập nhật mô tả và tôi sẽ sử dụng name=value các cặp.

EXECUTE msdb.dbo.sysmail_configure_sp  
    @parameter_name = 'MaxFileSize', 
    @parameter_value = '4000000',
    @description = 'Current maximum file size';

Bây giờ khi chúng ta thực thi sysmail_help_configure_sp một lần nữa, chúng tôi thấy giá trị mới.

EXEC msdb.dbo.sysmail_help_configure_sp 
    @parameter_name = 'MaxFileSize';

Kết quả:

+-------------+--------------+---------------------------+
| paramname   | paramvalue   | description               |
|-------------+--------------+---------------------------|
| MaxFileSize | 4000000      | Current maximum file size |
+-------------+--------------+---------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt để cắt tất cả các ký tự khoảng trắng khỏi một chuỗi trong T-SQL mà không có UDF và không có CLR là gì?

  2. Cài đặt và cấu hình SQL Server Log Shipping &Disaster Recovery -1

  3. Làm cách nào để truy vấn trường DATETIME chỉ sử dụng ngày tháng trong Microsoft SQL Server?

  4. Giải mã kiểu chờ CXPACKET và CXCONSUMER trong SQL Server

  5. Thứ tự của các cột trong chỉ mục quan trọng như thế nào?