Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Do stored procedures have the ability to delete a file from the OS?

Out of curiosity, does a stored procedures have the ability to delete a file from the OS?

If not I will have to make a windows Batch file that deletes the file and then runs the stored procedure using OSQL.

like image 914
djangofan Avatar asked Dec 19 '25 00:12

djangofan


2 Answers

Technically, with the correct permissions, you could execute xp_cmdshell to issue commands to the OS (or call a batch file, whatever), but it's probably not a good idea. If you do use that method, be very strict about permissions.

Edited for clarity.

like image 101
atfergs Avatar answered Dec 21 '25 14:12

atfergs


Try this

Option 1 delete a file using xp_cmdshell

xp_cmdshell 'del y:\file.dat'

Option 2 delete a file using 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
like image 32
RRUZ Avatar answered Dec 21 '25 15:12

RRUZ