Параметры файла SQL Server xp_delete_file

#sql-server #sql-server-2008-r2 #sql-server-2012 #sql-server-2014

#sql-сервер #sql-server-2008-r2 #sql-server-2012 #sql-server-2014

Вопрос:

Кто может объяснить список xp_Delete_file параметров в sql server. Я не нахожу документ msdn для этой хранимой процедуры.

Я получил скрипт xp_Delete_file из плана обслуживания, но не понял первый параметр.

Комментарии:

1. @BogdanSahlean. ОК. не существует ни одного документа в msdn. но никто не знает их параметров и использования. и не существует ни одного документа в ссылках, отличных от Microsoft.

Ответ №1:

xp_delete_file возьмем пять параметров:

  1. Тип файла = 0 для файлов резервных копий или 1 для файлов отчетов.
  2. Путь к папке = Папка для удаления файлов. Путь должен заканчиваться обратной косой чертой «».
  3. Расширение файла = Это может быть ‘BAK’ или ‘TRN’ или что-то еще, что вы обычно используете.
  4. Дата = Дата отсечения для того, какие файлы необходимо удалить.
  5. Подпапка = 0 для игнорирования вложенных папок, 1 для удаления файлов во вложенных папках.

Источник How to Use xp_delete_file to Purge Old Backup Files Патрика Кейслера

Комментарии:

1. По крайней мере, в SQL Server 2014 вторым параметром (путь к папке) может быть определенное имя файла, что приводит к удалению только этого одного файла, например: EXEC master.dbo.xp_delete_file 0, ‘C:BackupsSomeDatabaseBackup.bak ‘

2. Начиная с SQL Server 2012, файл xp_delete_file, созданный планом обслуживания, не имеет завершающую обратную косую черту в пути к папке.

Ответ №2:

Следуя приведенному выше комментарию, я тестировал это на SQL Server 2012 SP4 и могу подтвердить синтаксис EXEC master.dbo.xp_delete_file 0, ‘C:Некоторый путь Файл резервной копии.bak’ работает и удаляет конкретный файл с именем.

Ответ №3:

Я обнаружил, что это более очевидно, поскольку мне нравится показывать параметры:

 DECLARE @DeleteDate DATETIME = DATEADD(wk,-2,GETDATE());
DECLARE @ReturnVal int

EXEC @ReturnVal = master.dbo.xp_delete_file 
    @FileType = 0,
    @FolderPath = N'U:SQLBackups',
    @FileExtension = N'bak',
    @Date = @DeleteDate,
    @Subfolder = 1

print @ReturnVal