Maison > base de données > tutoriel mysql > Comment puis-je vérifier l'existence d'un fichier dans SQL Server pour chaque ligne d'une table ?

Comment puis-je vérifier l'existence d'un fichier dans SQL Server pour chaque ligne d'une table ?

Linda Hamilton
Libérer: 2025-01-06 02:33:40
original
403 Les gens l'ont consulté

How Can I Verify File Existence in SQL Server for Each Row in a Table?

Vérification de l'existence des fichiers dans SQL Server

Énoncé du problème

Étant donné une table avec les chemins de fichiers stocké dans une colonne, la tâche consiste à déterminer si chaque fichier existe physiquement dans le système de fichiers. Le but est d'ajouter une colonne temporaire pour indiquer "Oui" pour les fichiers existants et "Non" pour les fichiers inexistants.

Solution

Pour y parvenir, nous peut utiliser la procédure stockée étendue master.dbo.xp_fileexist, qui vérifie l'existence d'un fichier spécifié. Cependant, pour appliquer cette technique à une table, une fonction personnalisée est requise.

Fonction personnalisée

CREATE FUNCTION dbo.fn_FileExists(@path varchar(512))
RETURNS BIT
AS
BEGIN
     DECLARE @result INT
     EXEC master.dbo.xp_fileexist @path, @result OUTPUT
     RETURN cast(@result as bit)
END;
GO
Copier après la connexion

Ajout d'une colonne calculée

Modifiez le tableau pour ajouter une colonne calculée appelée IsExists avec le expression :

dbo.fn_FileExists(filepath)
Copier après la connexion

Utilisation

Maintenant, vous pouvez simplement sélectionner les enregistrements avec des fichiers existants :

SELECT * FROM dbo.MyTable where IsExists = 1
Copier après la connexion

Utilisation alternative (Hors colonne calculée)

Pour utiliser la fonction en dehors d'une colonne calculée column :

select id, filename, dbo.fn_FileExists(filename) as IsExists
from dbo.MyTable
Copier après la connexion

Dépannage

Si la fonction renvoie 0 pour les fichiers connus, vérifiez les autorisations du dossier et assurez-vous que le compte SQL Server dispose d'un accès en lecture seule. De plus, ajoutez le compte « Service réseau » aux paramètres de sécurité du dossier pour accorder l'accès.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal