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\';