SQL: come controllare l’esistenza di un file

SQL Server offre la possibilità di controllare se un file esiste. Vediamo come.

Tramite una procedura interna di SQL è possibile controllare l’esistenza di un file. La procedura è xp_fileexist e va usata così

EXEC master..xp_fileexist 'C:\immagine.jpg'

viene riportato 1 se il file esiste, oppure 0 se non esiste.

In un caso pratico ho dovuto controllare l’esistenza di un certo numero di files, il cui nome era memorizzato in una tabella. Per fare questo, ho innanzitutto creato una funzione (udf) che effettuasse il controllo e ritornasse il flag di trovato/non trovato

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<EDC>
-- Create date: <05.sep.2009>
-- Description:	<Check file exist>
-- =============================================
ALTER FUNCTION udf_FileExist
(
	@in_FileName VARCHAR(512)
)
RETURNS INT
AS
BEGIN

	DECLARE @out_result INT
	
	EXEC master..xp_fileexist @in_FileName, @out_result OUT

	RETURN ISNULL(@out_result,0)

END
GO

La funzione udf_FileExist accetta in input il nome del file (percorso completo) e restituisce un intero che varrà 1 se il file esiste, oppure 0 se non esiste.

Per usarla, sarà sufficiente richiamare la funzione nella query, così:

SELECT NomeFile, dbo.udf_FileExist(NomeFile) AS Esiste FROM Tabella_Files

Replica

%d blogger hanno fatto clic su Mi Piace per questo: