SQL Server Cómo comprobar si un archivo existe en un directorio

Con frecuencia, cuando se trabaja con SQL, necesitamos saber si un archivo existe en un directorio local o no. Esto se puede hacer usando el procedimiento incorporado de SQL Server conocido como master.dbo.xp_fileexist. Esta función definida por el usuario (UDF) verifica si existe un archivo en un directorio específico.

create FUNCTION dbo.fc_FileExists (@path varchar (8000)) RETURNS BIT COMO COMIENZO A DECLARAR @result INT EXEC master.dbo.xp_fileexist @path, @result OUTPUT RETURN cast (@result como bit) END; IR


En la función anterior, estamos pasando el parámetro @path, y el procedimiento incorporado master.dbo.xp_fileexist verificará si ese archivo realmente existe en la ruta especificada. La función devolverá 1 si existe. Si el archivo no existe, la función devolverá 0.

Veamos cómo se desempeña esta función con un ejemplo.

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



Si tiene una tabla con una columna que enumera todas las rutas de archivo, también puede usar esta función en la tabla.

Crear tabla de lista de archivos (fileno int, nombre de archivo varchar (max));


Vamos a insertar datos de muestra.

Insertar en valores de lista de archivos (1, 'C: \ mywork \ tech-recipes.rar'); Insertar en la lista de archivos VALORES (2, 'C: \ mywork \ barfi.mp3');


Aquí podemos usar la función dbo.fc_FileExists (nombre de archivo) para verificar si el archivo existe o no.

Seleccione fileno, filename, dbo.fc_FileExists (nombre de archivo) como IsFileExists From filelist;
fileno nombre de archivo IsFileExists ----------- ------------------------------------ ------------ 1 C: \ mywork \ tech-recipes.rar 1 2 C: \ mywork \ barfi.mp3 0

IsFileExists Es una columna temporal. Si desea convertirlo en una columna permanente, deberá utilizar la consulta de actualización.