从T-SQL Trigger执行SSRS报告的打印

时间:2014-04-23 15:29:11

标签: c# sql sql-server printing reporting-services

我目前正在研究将记录插入表格时触发SSRS报告打印的T-SQL触发器的功能。我发现最接近完成此事的是ScottLenart的评论here。我有一些参数需要传递给报告,我想将打印作业发送到特定的网络打印机。我想知道这是否可以构建到SQL CLR程序集中(虽然我知道这似乎是使用SQL CLR的错误方法),或者如果使用xp_cmdshell启动一些打印它的自定义c#app我最好的方法。

我想我可能不得不考虑使用某种队列来在触发器触发时将打印请求放入其中以便在打印时不会阻止其他一些查询,或者其他什么,但我和#39;我试图弄清楚如何在数据库中创建或更新记录时尽可能接近地打印文档。

我希望在SQL Server 2012中部署它

2 个答案:

答案 0 :(得分:0)

这可能是可行的,但这不是你应该做的事情。想象一下,您正处于交易过程中,持有锁并阻止对资源的访问,而有人必须将纸张送入打印机?

如果您真的有这样做的强大商业案例,请使用服务代理调用异步(因此事务可以提交并释放资源)。

答案 1 :(得分:0)

使用触发器将记录插入"打印队列"某种表。有一个计划的SQL Server作业,从那里开始模拟ScottLenart的进程。院长是对的 - 没有触发器实际执行报告/打印操作;仅使用触发器将该工作负载传递/准备到另一个进程。