Souvent, lorsque vous travaillez avec SQL, nous avons besoin de savoir si un fichier existe ou non dans un répertoire local. Cela peut être fait en utilisant la procédure intégrée de SQL Server appelée master.dbo.xp_fileexist. Cette fonction définie par l'utilisateur (UDF) vérifie si un fichier existe ou non dans un répertoire spécifié.
create FUNCTION dbo.fc_FileExists (@path varchar (8000)) RETOURNE LE BIT AU DÉBUT DECLARE @result INT EXEC master.dbo.xp_fileexist @path, @result SORTIE RETOUR convertie (@ résultat sous forme de bit) END; ALLER
Dans la fonction ci-dessus, nous passons le paramètre @path et la procédure intégrée master.dbo.xp_fileexist vérifiera si ce fichier existe réellement dans le chemin spécifié. La fonction retournera 1 si elle existe. Si le fichier n'existe pas, la fonction retournera 0.
Voyons comment cette fonction fonctionne avec un exemple.
sélectionnez dbo.fc_FileExists ('C: \ mywork \ tech-recipes.rar'); ----- 1 sélectionnez dbo.fc_FileExists ('C: \ mywork \ barfi.mp3'); ----- 0
Si vous avez une table avec une colonne répertoriant tous les chemins de fichiers, vous pouvez également utiliser cette fonction sur la table.
Créer une table filelist (fileno int, filename varchar (max));
Laissez-nous insérer des exemples de données.
Insérer dans les valeurs de la liste de fichiers (1, 'C: \ mywork \ tech-recipes.rar'); Insérer dans la liste de fichiers VALUES (2, 'C: \ mywork \ barfi.mp3');
Ici, nous pouvons utiliser la fonction dbo.fc_FileExists (nom de fichier) pour vérifier si le fichier existe ou non.
Sélectionnez fileno, nom de fichier, dbo.fc_FileExists (nom de fichier) en tant que IsFileExists From filelist;
fileno nomfichier IsFileExists ----------- ---------------------------------------- ------------ 1 C: \ mywork \ tech-recipes.rar 1 2 C: \ mywork \ barfi.mp3 0
IsFileExists est une colonne temporaire. Si vous souhaitez en faire une colonne permanente, vous devez utiliser la requête de mise à jour.