Persoonlijk is dit een scenario waarin ik pure TSQL zou vermijden en een extern script of programma zou gebruiken. Afhankelijk van wat je probeert te doen, zul je merken dat het gebruik van Smo van Powershell of .NET sowieso de noodzaak van TSQL volledig vermijdt. Ik zeg dat omdat het werken met back-ups altijd lijkt te leiden tot het werken met bestanden buiten de database, en dan is TSQL gewoon te onhandig.
Dat gezegd hebbende, als je zeker weet dat je dit in TSQL moet doen, dan kun je zoiets als dit doen:
insert into dbo.BackupFiles (LogicalName, PhysicalName, ...)
exec('RESTORE FILELISTONLY FROM DISK = ''c:\Test\Test.bak''')
Of om wat aardiger te zijn:
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
Je zou echter nog steeds eerst de tabel moeten maken, wat niet erg is en hoe dan ook logisch is als je dit veel doet. Books Online vermeldt het gegevenstype voor elke kolom in de resultatenset, maar in ieder geval voor mij (SQL2008 SP1) komt de documentatie niet overeen met de werkelijke resultatenset, dus u moet deze mogelijk aanpassen.