2 votes

Les procédures stockées ont-elles la capacité de supprimer un fichier du système d'exploitation ?

Par curiosité, une procédure stockée a-t-elle la capacité de supprimer un fichier du système d'exploitation ?

Sinon, je vais devoir créer un fichier batch Windows qui supprime le fichier et exécute ensuite la procédure stockée en utilisant OSQL.

6voto

Jon Points 241

Techniquement, avec les autorisations correctes, vous pourriez exécuter xp_cmdshell pour envoyer des commandes au système d'exploitation (ou appeler un fichier batch, peu importe), mais ce n'est probablement pas une bonne idée. Si vous utilisez cette méthode, soyez très strict sur les permissions.

Modifié pour plus de clarté.

3voto

RRUZ Points 98685

Essayez ceci

Option 1 supprimer un fichier en utilisant xp_cmdshell

xp_cmdshell 'del y:\file.dat'

Option 2 supprimer un fichier à l'aide d'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 Points 18473

Vous pouvez également utiliser une procédure stockée CLR pour cela. C'est l'une des principales raisons de l'existence des procédures stockées gérées, pour interagir avec le système d'exploitation de manière sûre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X