SQL Server xp_delete_file не удаляет файлы

Обратите внимание, что (.|\n)* может быть менее эффективным, чем (например) [\s\S]* (если регулярные выражения вашего языка поддерживают такие escape-последовательности), а не поиск того, как указать модификатор, который делает. также соответствуют новостям. Или вы можете пойти с альтернативами POSIXy, такими как [[:space:][:^space:]]*.

13
задан Brian Tompsett - 汤莱恩 1 July 2015 в 22:34
поделиться

4 ответа

Имел подобную проблему, нашел различные ответы. Вот то, что я нашел.

Вы не можете удалить 7z файлы с xp_delete_file. Это - недокументированная расширенная хранимая процедура, это - пережиток от SQL 2000. Это проверяет первую строку файла, который будет удален, чтобы проверить, что это - или файл резервной копии SQL или файл отчета о SQL. Это не проверяет на основе расширения файла. Из того, что я заключаю, что его надлежащее использование находится в планах технического обслуживания к очистке старые резервные копии, и запланируйте отчеты.

Вот образец на основе ссылки Tomalak для удаления файлов резервных копий, более старых, чем 7 дней. Что сбивает людей, с толку 'sys' схема, запаздывающая наклонная черта в пути к папке и никакая точка в расширении файла для поиска. Пользователь, которого выполняет SQL Server, равно как и потребности иметь удаляют полномочия на папке.

DECLARE @DeleteDate datetime
SET @DeleteDate = DateAdd(day, -7, GetDate())

EXECUTE master.sys.xp_delete_file
0, -- FileTypeSelected (0 = FileBackup, 1 = FileReport)
N'D:\SQLbackups\', -- folder path (trailing slash)
N'bak', -- file extension which needs to be deleted (no dot)
@DeleteDate, -- date prior which to delete
1 -- subfolder flag (1 = include files in first subfolder level, 0 = not)

Примечание, что xp_delete_file повреждается в SP2 и не будет работать над файлами отчета; существуют текущие исправления для него в [ http://support.microsoft.com/kb/938085] . Я не протестировал его с SP3.

, Так как это не документировано, xp_delete_file может уйти или измениться в будущих версиях SQL Server. Много сайтов рекомендуют сценарию оболочки сделать удаления вместо этого.

21
ответ дан 1 July 2015 в 22:34
поделиться

AFAIK xp_delete_file только удаляет файлы, распознанные SQL Server 2005 (файлы резервных копий, журналы транзакций...). Возможно, можно попробовать что-то вроде этого:

xp_cmdshell 'del <filename>'
6
ответ дан Jorge Ferreira 1 July 2015 в 22:34
поделиться

Этот SP будет только только удалять собственные файлы резервных копий SQL-сервера или собственные файлы отчета об обслуживании (в целях безопасности)

, Поскольку Smink предположил, что можно использовать

xp_cmdshell 'del <filename>'

С верными полномочиями на папке.

3
ответ дан Eduardo Molteni 1 July 2015 в 22:34
поделиться

Попытайтесь изменить первый параметр с 0 до 1.

Вот маленькое сводка на xp_delete_file , я просто нашел. Звуки немного как Вам не повезло бы с этой процедурой.

0
ответ дан Tomalak 1 July 2015 в 22:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: