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

前端之家收集整理的这篇文章主要介绍了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.

猜你在找的MsSQL相关文章