SQL Server Come verificare se un file esiste in una directory

Spesso, quando si lavora con SQL, è necessario sapere se un file esiste in una directory locale o meno. Questo può essere fatto usando la procedura integrata di SQL Server nota come master.dbo.xp_fileexist. Questa funzione definita dall'utente (UDF) controlla se un file esiste o meno in una directory specificata.

create FUNCTION dbo.fc_FileExists (@path varchar (8000)) RITORNA BIT COME BEGIN DECLARE @result INT EXEC master.dbo.xp_fileexist @path, @result OUTPUT RETURN cast (@result as bit) END; PARTIRE


Nella funzione sopra, stiamo passando il parametro @path, e la procedura integrata master.dbo.xp_fileexist controllerà se quel file esiste realmente sul percorso specificato. La funzione restituirà 1 se esiste. Se il file non esiste, la funzione restituirà 0.

Vediamo come questa funzione si comporta con un esempio.

selezionare dbo.fc_FileExists ('C: \ mywork \ tech-recipes.rar'); ----- 1 seleziona dbo.fc_FileExists ('C: \ mywork \ barfi.mp3'); ----- 0



Se hai una tabella con una colonna che elenca tutti i percorsi dei file puoi usare questa funzione anche sulla tabella.

Crea filelist tabella (fileno int, nome file varchar (max));


Cerchiamo di inserire dati di esempio.

Inserisci nei valori dell'elenco file (1, 'C: \ mywork \ tech-recipes.rar'); Inserisci nella lista dei file VALUES (2, 'C: \ mywork \ barfi.mp3');


Qui possiamo usare la funzione dbo.fc_FileExists (filename) per verificare se il file esiste o meno.

Seleziona fileno, filename, dbo.fc_FileExists (filename) come IsFileExists Da filelist;
nomefile fileno IsFileExists ----------- ------------------------------------ ------------ 1 C: \ mywork \ tech-recipes.rar 1 2 C: \ mywork \ barfi.mp3 0

IsFileExists è una colonna temporanea. Se si desidera renderlo una colonna permanente, sarà necessario utilizzare la query di aggiornamento.