sql-server – 是否有一种优雅的方式将查询直接发送到物理打印机?

我有这个奇怪的请求,要安排报告并打印到打印机.

报告本身非常简单,适合单页.我可以将它打印到.txt,这将很好(虽然我对更好的产品的建议开放).

这是代码.有用.但我不喜欢它.具体来说,Id喜欢废除嵌套的@bcp和@sql.

问题:有更优雅的方法吗?

declare @filepath varchar(255),@filename varchar(255),@filetype varchar(255),@sql nvarchar(max),@coverpage_text nvarchar(max)

set @filepath = 'C:\users\jmay\documents\'
SET @filename = 'TestFile'
set @filetype = '.txt'

--output to txt
set @sql = N'declare @bcp varchar(4000)
set @bcp = ''bcp " select * from test_data " queryout ' 
+ @filepath +  @filename + @filetype + ' -t " - " -c -T -d DBA''
print @bcp

EXECUTE master.dbo.xp_cmdshell @BCP'

print @sql
 exec sp_executesql @sql

--print data
 set @sql = N'declare @bcp varchar(4000)
set @bcp = ''START /MIN NOTEPAD /P ' + @filepath +  @filename +  @filetype + '''
print @bcp

EXECUTE master.dbo.xp_cmdshell @BCP'

print @sql
exec sp_executesql @sql

解决方法

使用POWERSHELL和 OUT-PRINTER执行查询
Invoke-sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance .   | Out-Printer

The Out-Printer cmdlet sends output to the default printer or to an alternate printer,if one is specified.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03