Vérifiez le fichier existe ou pas dans sql server?
Solution : http://www.tech-recipes.com/rx/30527/sql-server-how-to-check-if-a-file-exists-in-a-directory/
Fait un post au sujet de cette question à l'aide de stackoverflow question d'aider les autres.
id filepath
1 C:\vishwanath\21776656.docx
2 C:\vishwanath\vish\s_srv_req_2009.txt
3 C:\Users\dalvi\DW\DW20SharedAmd64.exe
4 C:\Users\dalvi\1.txt
J'ai de la table, comme cela a créé dans mon serveur de base de données, j'ai stocké les chemins de fichier dans ce chemin d'accès de la colonne, maintenant, j'ai vérifier à l'aide de sql si le fichier existe dans ma machine, si elle existe, j'ai besoin d'ajouter temporaire de la colonne dans ma table montrant oui si existe et il n'existe pas.
J'ai écrit ce code qui fonctionne pour 1 fichier Mais je ne sais pas comment l'utiliser pour ma table.
DECLARE @isExists INT
exec master.dbo.xp_fileexist 'C:\vishwanath776656.docx',
@isExists OUTPUT
SELECT case @isExists
when 1 then 'Yes'
else 'No'
end as isExists
La sortie Finale voudrais que ce
id filepath Isexists
1 C:\vishwanath\21776656.docx Yes
2 C:\vishwanath\vish\s_srv_req_2009.txt Yes
3 C:\Users\dalvi\DW\DW20SharedAmd64.exe Yes
4 C:\Users\dalvi\1.txt No
- Il semble que vous essayez d'utiliser un Serveur SQL server distant pour vérifier si un fichier existe sur votre machine locale. Il est peu probable que le serveur a accès au système de fichiers sur votre ordinateur local (pour de bonnes raisons).
Vous devez vous connecter pour publier un commentaire.
Créer une fonction comme ceci:
Modifier votre table et ajoutez une colonne calculée (IsExists BITS). Définir l'expression:
Ensuite il suffit de sélectionner:
Mise à jour:
L'utilisation de la fonction à l'extérieur d'une colonne calculée:
Mise à jour:
Si la fonction renvoie 0 pour un fichier, alors il est probablement un problème d'autorisations. Assurez-vous que le Serveur SQL du compte dispose des autorisations suffisantes pour accéder au dossier et fichiers. Lecture seule devrait suffire.
Et OUI, par défaut, le 'SERVICE RÉSEAU' compte ne sera pas assez à droite dans la plupart des dossiers. Clic droit sur le dossier en question et sélectionnez "Propriétés", puis cliquez sur l'onglet 'Sécurité'. Cliquez sur "Modifier" et ajouter "Service Réseau". Cliquez sur "Appliquer" et refaites le test.
SELECT * FROM fileinfo where dbo.fn_FileExists(filepath)=1;
filepath est ma colonne, mais il retourne vide.DECLARE @result INT
que de déclarer la sortie param commeBIT
elle renvoie toujoursNULL
pour moi.NULL
dans toutes les lignes.select dbo.fn_FileExists(filepath) from fileinfo
renvoie Toujours NULL.Pas testé, mais vous pouvez essayer quelque chose comme ceci :
Vous pouvez atteindre cet objectif à l'aide d'un curseur, mais la performance est beaucoup plus lent que whileloop..
Voici le code:
ou vous pouvez les mettre dans un tempTable si vous souhaitez l'intégrer à votre frontend..
alors appel à l'aide:
Essayez le code suivant pour vérifier si le fichier existe. Vous pouvez créer une fonction utilisateur et à utiliser dans votre procédure stockée. modifier ce que vous avez besoin: