web-dev-qa-db-ja.com

メンテナンスプランWizard無効なスクリプトを生成しますか?

メンテナンスプランWizardを使用してプランを作成しました。プランを実行すると、「メンテナンスクリーンアップタスク」が次のエラーメッセージで失敗します。

クエリ「EXECUTE master.dbo.xp_delete_file 0、N ''、N ''、N'2016 ...」の実行は、次のエラーで失敗しました:「拡張ストアドプロシージャの実行エラー:無効なパラメーター」。考えられる失敗の理由:クエリの問題、「ResultSet」プロパティが正しく設定されていない、パラメーターが正しく設定されていない、または接続が正しく確立されていない。

生成されたT-SQLは次のとおりです(ログファイルビューアによると)。

EXECUTE master.dbo.xp_delete_file 0,N'''',N'''',N''2016-01-25T13:50:30''

GO

一重引用符はすべて二重になっていることに注意してください。

ログビューアまたはウィザードに実際に無効なT-SQLコードを生成しているバグはありますか?


重複した引用符を削除してクエリを手動で実行すると、「拡張ストアドプロシージャの実行エラー:無効なパラメーター」が表示されることに気づきました。

EXECUTE master.dbo.xp_delete_file 0,N'',N'',N'2016-01-25T13:50:30'

GO
5

master.dbo.xp_delete_fileプロシージャはドキュメント化されていないようで、バイナリプロシージャ(sp_helptext 'master.dbo.xp_delete_file'印刷xpstar.dll)ソースコードから引数を理解することはできません。 非公式ソース これらはその引数であることを示唆しています:

  1. ファイルタイプ= 0はバックアップファイル、1はレポートファイルです。
  2. フォルダパス=ファイルを削除するフォルダ。パスはバックスラッシュ「\」で終了する必要があります。
  3. File Extension=これは、「BAK」や「TRN」など、通常使用しているものです。
  4. Date=削除する必要があるファイルの締切日。
  5. Subfolder= 0はサブフォルダーを無視し、1はサブフォルダー内のファイルを削除します。

つまり、コマンドには実際に削除するパスがありません。 「管理/保守計画」に移動する場合は、計画を右クリックして「変更」を選択し、個々のタスクを編集できます。この場合、「メンテナンスクリーンアップタスク」にパスがありませんでした(ウィザードがパスを入力したかどうかを検証していないようです)。次のようになります。

Maintenance Cleanup Task

9

私が知っている古いスレッドですが、これが誰かを助ける場合に備えて...私のケースでは専用ドライブ「f:\」を持っているので、私は間違いなく自分のパスを手で入力しました。これを読んで自分の仕事を見ると、それも空っぽでした。今回は...ボタンで選択し、問題を修正しました。

0
ebol2000