क्या किसी भौतिक प्रिंटर पर सीधे क्वेरी परिणाम भेजने का एक सुंदर तरीका है?


14

मेरे पास यह अजीब अनुरोध है कि रिपोर्ट को शेड्यूल किया जाए और प्रिंटर पर प्रिंट किया जाए

रिपोर्ट स्वयं बहुत सरल है, और एक ही पृष्ठ पर फिट होगी। मैं इसे एक 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

जवाबों:


36

क्वेरी का उपयोग कर POWERSHELLऔर OUT-PRINTER को निष्पादित करें

Invoke-Sqlcmd -Query "SELECT GETDATE() AS TimeOfQuery;" -ServerInstance .   | Out-Printer

यदि कोई निर्दिष्ट है, तो आउट-प्रिंटर cmdlet डिफ़ॉल्ट प्रिंटर या वैकल्पिक प्रिंटर को आउटपुट भेजता है।


4
इसने जादू की तरह काम किया, एक ही कोड को छोटा किया जा सकता है: Invoke-Sqlcmd -Query "SELECT * से dba..test_data;" | आउट-प्रिंटर मैंने इसे नौकरी और बीएएम के रूप में निर्धारित किया। आपकी सहायताके लिए धन्यवाद!
जेम्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.