2 Stimmen

Können gespeicherte Verfahren eine Datei aus dem Betriebssystem löschen?

Nur so aus Neugier: Kann eine gespeicherte Prozedur eine Datei aus dem Betriebssystem löschen?

Wenn nicht, werde ich eine Windows Batch-Datei erstellen müssen, die die Datei löscht und dann die gespeicherte Prozedur mit OSQL ausführt.

6voto

atfergs Punkte 1676

Technisch gesehen könnten Sie mit den richtigen Berechtigungen xp_cmdshell ausführen, um Befehle an das Betriebssystem zu senden (oder eine Batch-Datei aufzurufen), aber das ist wahrscheinlich keine gute Idee. Wenn Sie diese Methode verwenden, achten Sie sehr genau auf die Berechtigungen.

Aus Gründen der Klarheit editiert.

3voto

RRUZ Punkte 132753

Versuchen Sie dies

Möglichkeit 1 Löschen einer Datei mit xp_cmdshell

xp_cmdshell 'del y:\file.dat'

Möglichkeit 2 Löschen einer Datei mit OLE Automation

DECLARE @ResultOP int
DECLARE @OLE_Obj  int

EXEC @ResultOP = sp_OACreate 'Scripting.FileSystemObject', @OLE_Obj OUTPUT
EXEC @ResultOP = sp_OAMethod @OLE_Obj, 'DeleteFile', NULL, 'y:\file.dat'
EXEC @ResultOP = sp_OADestroy @OLE_Obj

1voto

Eric Z Beard Punkte 36325

Sie könnten dafür auch eine gespeicherte CLR-Prozedur verwenden. Das ist einer der Hauptgründe für die Existenz von verwalteten gespeicherten Prozeduren, um mit dem Betriebssystem auf sichere Weise zu interagieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X