CR2*_*241 1 sql-server ssms sql-server-agent sql-server-2016
我想创建一个 SQL 作业并发送包含多个选择语句的电子邮件,包括查询结果。是否可以使用 SQL Job 或者我应该使用 SSIS?
编辑1:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = '****@abc.com',
@Execute_query_database = 'AdventureWorks',
@query = 'SELECT COUNT(*) FROM AdventureWorks.Production.WorkOrder
WHERE DueDate > '2018-03-30'
AND DATEDIFF(dd, '2004-04-30', DueDate) < 2
SELECT * FROM NorthWind.Production.Work
WHERE DueDate > '2018-04-30'
' ,
@subject = 'Work Order Count',
@attach_query_result_as_file = 1 ;
Run Code Online (Sandbox Code Playgroud)
错误消息:文件附件或查询结果大小超过了 1000000 字节的允许值。
编辑 2:我觉得 SQL 代理作业没有指向所需的数据库,并且 sp_send_email 没有数据库名称。所以我添加了@Execute_query_database = 'AdventureWorks'但仍然没有改进,因为在 SQL SELECTS 中使用了两个不同的数据库。
有什么想法吗?
您基本上是从最大的 sql server 发送 1GB 文件。您可以使用重新配置默认值
exec msdb.dbo.sysmail_configure_sp 'MaxFileSize','2000000'-- 2GB
我会说,使用 bcp 输出文件,使用 zip 或 7zip 压缩它,然后使用 powershell 或 ssis 发送。