SQL Server 2019では、sys.xp_delete_filesを使用できます。 ファイルシステム上のファイルを削除するためのストアドプロシージャ。
このストアドプロシージャはSQLServer2019で導入され、sys.xp_copy_fileと組み合わせて使用できます。 およびsys.xp_copy_files (どちらもSQL Server 2019でも導入されました)。これにより、ファイルをコピーできます。
SQL Server 2019より前は、xp_cmdshellを使用する必要がありました。 、Windowsコマンドシェルを生成し、実行用の文字列を渡します。 SQL Server 2019で導入された新しいストアドプロシージャを使用すると、xp_cmdshellに依存せずにファイルをコピーおよび削除できます。 。
例1–1つのファイルを削除
単一のファイルを削除する例を次に示します。
Linuxでの例:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/albums2.csv';
LinuxでSQLServer2019を使用するMacでこのコードを実行しました。これにより、albums2.csvというファイルが正常に削除されました。 (フルパス/var/opt/mssql/data/samples/albums2.csv 。
Windowsシステムでファイルをコピーするには、Windowsパス規則を使用する必要があります。
Windowsでの例:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\albums2.csv';
もちろん、正確な場所は状況によって異なります。
例2–複数のファイルを削除する
同じ手順を使用して、複数のファイルを削除できます。
Linuxでの例:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/albums*.csv';
この場合、/var/opt/mssql/data/samples/final内のすべてのファイルを削除しました albumsで始まるディレクトリ .csvで終わります 。アスタリスク(*)を使用します )albumsの後に他の文字が含まれている可能性のあるファイルを選択するためのワイルドカード 一部。
Windowsでの例:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\albums*.csv';
例3–フォルダの削除
同じ手順を使用して、フォルダ全体を削除できます。
Linuxでの例:
EXEC master.sys.xp_delete_files '/var/opt/mssql/data/samples/final/';
この場合、/var/opt/mssql/data/samples/finalを削除しました ディレクトリ全体。
Windowsでの例:
EXEC master.sys.xp_delete_files 'D:\mssql\data\samples\final\';