データベースから対応するエントリを削除すると、物理ファイルをサーバから削除できますか?データベースから対応するエントリを削除すると、物理ファイルをサーバから削除できますか?
つまり、C:\ Test \ Test.txt - >このレコードをデータベースから削除する場合、上記の場所から対応するTest.txtファイルを削除する必要があります。 方法はあります、私は...任意のヘルプは非常にかなりのだろうSQLに
おかげ
データベースから対応するエントリを削除すると、物理ファイルをサーバから削除できますか?データベースから対応するエントリを削除すると、物理ファイルをサーバから削除できますか?
つまり、C:\ Test \ Test.txt - >このレコードをデータベースから削除する場合、上記の場所から対応するTest.txtファイルを削除する必要があります。 方法はあります、私は...任意のヘルプは非常にかなりのだろうSQLに
おかげ
の方法があり、2008年
を使用してメートル:xp_cmdshell
PROC(execをマスターの
どちらの方法は
そして再び醜いです - それは最悪の練習です。サーバーは、ユーザーファイルまたはファイルを削除してはなりません。それらは、データベースの不可欠な部分ではありません。
任意のポインタ..ファイルを削除するためにxp_cmdshellまたは.NET CLR unsafe procを使用する方法。 –
更新された回答を参照してください –
ありがとうOleg Dok –
CREATE TRIGGER FOR DELETE
を使用すると、行が削除されたときに実行されるトリガーを作成できます。削除時に実行されるSQL文は、テーブルdeleted
を通って削除された行を取得できます。各列については、exec xp_cmdshell
とすることができる。 xp_cmdshellはデフォルトで無効になっているため、最初にexec sp_configure
を使用してxp_cmdshellを有効にする必要があります。
私はこれをテストしませんでしたが、うまくいくはずです。
パラメータとしてファイル名を持つストアドプロシージャを書いてみて、使用してそれを削除します。後に、ストアドプロシージャを呼び出し、提供してファイル名を含むテーブルの上に削除するために
exec master.dbo.xp_cmdshell 'del <Filename>'
はその後、トリガーを作成しますテーブルのファイル名が、またはmabyから削除された場合、トリガーからexec master.dbo.xp_cmdshell 'del'コマンドを直接実行できます。
より良い方法は、ファイルパスの代わりにデータベースにオブジェクトとしてファイルを保存し、削除するときにファイルオブジェクトを削除することです。
これは、データベースレベルではなく、アプリケーションレベルで処理する必要があります。はい、それを行う方法はありますが、それは良い習慣ではありません。 – Ilion