Bir raporun planlanması ve bir yazıcıya yazdırılması için bu garip talebi aldım .
Raporun kendisi oldukça basit ve tek bir sayfaya sığacak. Ben bir txt yazdırabilirsiniz ve bu sadece iyi olacak (daha iyi bir ürün önerilerine açık olmasına rağmen).
İşte kod. İşe yarıyor. Ama hoşuma gitmedi. Özellikle, yuvalanmış @bcp ve @SQL ile ortadan kaldırmak istiyorum.
Soru: Bunu yapmanın daha zarif bir yolu var mı?
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