我即将建立一个报告/警报机制,定期检查一个不断更新的数据库的状态,并在需要时根据表中的数据发送报告/火灾警报。
我不熟悉MS BI堆栈。我使用了一些报告服务,但据我所见,它只能发送定期报告。在发送决定是否需要发送报告的报告之前,我需要一些相当简单的逻辑。
我是否应该使用自定义外部解决方案,一些核心SQL Server (触发器+ CLR支持)?或者,BI堆栈中有一个适合我需要的现有工具?
发布于 2013-06-07 14:13:45
取决于你希望你的报告有多复杂。
简单的解决方案是创建SQL存储过程,生成带有嵌入/附加HTML或附加csv文件的报告的电子邮件。
可以使用已经内置的灵活调度和错误报告从SQL Agent调用存储过程。
发布于 2013-06-10 15:48:47
@Jimbo的好观点是,这取决于您希望这是多么复杂。
首先,只需使用存储过程并将结果附加为电子邮件附件。有关如何实现它的更多详细信息,请参见此。这是来自MSDN的
@档案_attachments= 'file_attachments‘是一个以分号分隔的文件名列表,用于附加到电子邮件中。列表中的文件必须指定为绝对路径。附件列表的类型为nvarchar(max)。默认情况下,数据库邮件将每个文件的文件附件限制为1MB。@query= ' query‘是要执行的查询。查询结果可以作为文件附加,也可以包含在电子邮件正文中。查询类型为nvarchar(max),可以包含任何有效的Transact-SQL语句。请注意,查询是在单独的会话中执行的,因此调用sp_send_dbmail的脚本中的局部变量对查询不可用。@execute_查询_database= 'execute_query_database‘是存储过程运行查询的数据库上下文。该参数类型为sysname,默认为当前数据库。仅当指定@query时,此参数才适用。@附加_查询_结果_作为_file= attach_query_result_as_file指定查询的结果集是否作为附加文件返回。attach_query_result_as_file是位类型,默认值为0。当值为0时,查询结果将包含在电子邮件消息正文中,位于@body参数的内容之后。当值为1时,结果将作为附件返回。仅当指定@query时,此参数才适用。@查询_附件_filename= query_attachment_filename指定要用于查询附件的结果集的文件名。query_attachment_filename为nvarchar(255)类型,默认值为NULL。当attach_query_result为0时,此参数将被忽略。当attach_query_result为1且此参数为NULL时,数据库邮件将创建任意文件名。
https://dba.stackexchange.com/questions/44045
复制相似问题