Ich habe die seltsame Bitte, einen Bericht einzuplanen und auf einem Drucker auszudrucken .
Der Bericht selbst ist ziemlich einfach und passt auf eine einzelne Seite. Ich kann es als txt ausdrucken und das wird in Ordnung sein (obwohl ich offen für Vorschläge für ein besseres Produkt bin).
Hier ist der Code. Es klappt. Aber ich mag es nicht. Insbesondere würde ich gerne die verschachtelten @bcp und @SQL weglassen.
Frage: Gibt es einen eleganteren Weg, dies zu tun?
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
sql-server
James
quelle
quelle