SQL Server Så här kontrollerar du om en fil finns i en katalog

Ofta när vi arbetar med SQL måste vi veta om en fil finns i en lokal katalog eller inte. Detta kan göras med hjälp av SQL Servers inbyggda procedur som kallas master.dbo.xp_fileexist. Den här användardefinierade funktionen (UDF) kontrollerar huruvida en fil finns i en angiven katalog eller inte.

skapa FUNCTION dbo.fc_FileExists (@ path varchar (8000)) RETURNS BIT AS BEGIN DECLARE @ Resultat INT EXEC master.dbo.xp_fileexist @path, @result OUTPUT RETURN gjutna (@result som bit) END; GÅ


I funktionen ovan passerar vi parameter @ path och det inbyggda proceduren master.dbo.xp_fileexist kommer att kontrollera om filen verkligen finns på den angivna sökvägen. Funktionen kommer att returnera 1 om den existerar. Om filen inte existerar returnerar funktionen 0.

Låt oss se hur denna funktion utför med ett exempel.

välj dbo.fc_FileExists ('C: \ mywork \ tech-recipes.rar'); ----- 1 välj dbo.fc_FileExists ('C: \ mywork \ barfi.mp3'); ----- 0



Om du har ett bord med en kolumn som innehåller alla filvägar kan du även använda den här funktionen på bordet.

Skapa tabellfilelist (filnamn, filnamn varchar (max));


Låt oss infoga provdata.

Infoga i fillistorvärden (1, 'C: \ mywork \ tech-recipes.rar'); Infoga i fillistan VALUES (2, 'C: \ mywork \ barfi.mp3');


Här kan vi använda funktionen dbo.fc_FileExists (filnamn) för att kontrollera om filen finns eller ej.

Välj filnamn, filnamn, dbo.fc_FileExists (filnamn) som IsFileExists From filelist;
fileno filnamn IsFileExists ----------- ------------------------------------ ------------ 1 C: \ mywork \ tech-recipes.rar 1 2 C: \ mywork \ barfi.mp3 0

IsFileExists är en tillfällig kolumn. Om du vill göra det till en permanent kolumn måste du använda uppdateringsfrågan.