보고서를 예약 하고 프린터로 인쇄 하라는 이상한 요청이 있습니다 .
보고서 자체는 매우 간단하며 단일 페이지에 적합합니다. 나는 그것을 txt로 인쇄 할 수 있으며 괜찮을 것입니다 (더 나은 제품에 대한 제안에 열려 있지만).
코드는 다음과 같습니다. 효과가있다. 그러나 나는 그것을 좋아하지 않는다. 특히, 중첩 된 @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