Comprobar si existe un fichero con SQL Server

Para hacer más estable un procedimiento almacenado o stored procedure en SQL Server que trabaje con ficheros se puede realizar la comprobación de si el fichero en cuestión existe antes de empezar a procesarlo, de manera que sea más fácil de controlar el error que devuelve SQL Server cuando no existe. Esto es especialmente útil en los procesos de importación de ficheros.

La función que se puede utilizar para comprobar si existe un fichero es la siguiente. El único parámetro que recibe es la ruta y el nombre del fichero a comprobar, devolviendo un valor de tipo bit, valiendo 1 si existe y 0 si no existe. Como se puede observar, la función acaba llamando a la función propia de SQL Server llamada xp_fileexist.

CREATE FUNCTION dbo.fn_FileExists(@path varchar(8000)) RETURNS BIT
AS BEGIN
DECLARE @result INT
EXEC master.dbo.xp_fileexist @path, @result OUTPUT
RETURN cast(@result as bit)
END

Un ejemplo de la llamada a esta función sería la siguiente:

SELECT dbo.fn_FileExists('C:\directorio\fichero.txt') 

En caso de existir fichero.txt, retornará un 1, en caso contrario, un 0. Se puede buscar cualquier tipo de fichero, no tiene porque ser un archivo sql, txt o de cualquier extensión en concreto.

1 comentario en «Comprobar si existe un fichero con SQL Server»

Deja un comentario

Pin It on Pinterest