Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да вмъкнете във временна таблица информацията, дадена от RESTORE FILELISTONLY / HEADERONLY / VERIFYONLY

Лично това е един сценарий, при който бих избегнал чист TSQL и бих използвал външен скрипт или програма. В зависимост от това, което се опитвате да направите, може да откриете, че използването на Smo от Powershell или .NET така или иначе напълно избягва нуждата от 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

Все пак ще трябва първо да създадете таблицата, което не е голяма работа и така или иначе има смисъл, ако правите това често. Books Online изброява типа данни за всяка колона в набора от резултати, но поне за мен (SQL2008 SP1) документацията не съответства на действителния набор от резултати, така че може да се наложи да го промените.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте задание за агент на SQL Server с помощта на SSMS

  2. Предоставяне на разрешение за изпълнение на потребител за всички съхранени процедури в базата данни?

  3. Задайте произволно работно място и всяко място не трябва да надвишава броя на определените служители

  4. SQL Server Конвертиране на Varchar в Datetime

  5. Разделяне на разделени стойности в SQL колона на множество реда