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.