निजी तौर पर, यह एक ऐसा परिदृश्य है जहां मैं शुद्ध टीएसक्यूएल से बचूंगा और बाहरी स्क्रिप्ट या प्रोग्राम का उपयोग करूंगा। आप जो करने की कोशिश कर रहे हैं उसके आधार पर, आप पा सकते हैं कि Powershell या .NET से Smo का उपयोग करने से वैसे भी TSQL की आवश्यकता पूरी तरह से बच जाती है। मैं ऐसा इसलिए कहता हूं क्योंकि बैकअप के साथ काम करना हमेशा डेटाबेस के बाहर की फाइलों के साथ काम करने लगता है, और फिर TSQL बहुत अजीब है।
यह सब कहने के बाद, यदि आप सुनिश्चित हैं कि आपको यह TSQL में अवश्य करना चाहिए, तो आप कुछ इस तरह कर सकते हैं:
insert into dbo.BackupFiles (LogicalName, PhysicalName, ...)
exec('RESTORE FILELISTONLY FROM DISK = ''c:\Test\Test.bak''')
या थोड़ा अच्छा बनने के लिए:
declare @Command nvarchar(4000)
-- you can build the command string some other way, of course
set @Command = N'RESTORE FILELISTONLY FROM DISK = ''c:\Test\Test.bak'''
insert into dbo.BackupFiles (LogicalName, PhysicalName, ...)
exec sp_executesql @Command
आपको अभी भी पहले तालिका बनानी होगी, हालांकि, जो कोई बड़ी बात नहीं है और यदि आप इसे बहुत कुछ करते हैं तो वैसे भी समझ में आता है। बुक्स ऑनलाइन परिणाम सेट में प्रत्येक कॉलम के लिए डेटा प्रकार को सूचीबद्ध करता है, लेकिन कम से कम मेरे लिए (एसक्यूएल2008 एसपी1) दस्तावेज वास्तविक परिणाम सेट से मेल नहीं खाता है, इसलिए आपको इसे ट्विक करने की आवश्यकता हो सकती है।