SQL Server So prüfen Sie, ob eine Datei in einem Verzeichnis vorhanden ist

Bei der Arbeit mit SQL müssen wir häufig wissen, ob eine Datei in einem lokalen Verzeichnis vorhanden ist oder nicht. Dies kann mithilfe der integrierten Prozedur von SQL Server erfolgen, die als master.dbo.xp_fileexist bezeichnet wird. Diese benutzerdefinierte Funktion (UDF) prüft, ob eine Datei in einem angegebenen Verzeichnis vorhanden ist.

create FUNCTION dbo.fc_FileExists (@path varchar (8000)) RETURNS BIT ALS BEGINN DECLARE @result INT EXEC master.dbo.xp_fileexist @path, @result OUTPUT RETURN-Umwandlung (@result as bit) ENDE; GEHEN


In der obigen Funktion übergeben wir den Parameter @path, und die integrierte Prozedur master.dbo.xp_fileexist überprüft, ob diese Datei wirklich im angegebenen Pfad vorhanden ist. Die Funktion gibt 1 zurück, falls vorhanden. Wenn die Datei nicht vorhanden ist, gibt die Funktion 0 zurück.

Lassen Sie uns sehen, wie sich diese Funktion an einem Beispiel verhält.

select dbo.fc_FileExists ('C: \ mywork \ tech-recipes.rar'); ----- 1 Wählen Sie dbo.fc_FileExists ('C: \ mywork \ barfi.mp3') aus. ----- 0



Wenn Sie eine Tabelle mit einer Spalte mit allen Dateipfaden haben, können Sie diese Funktion auch für die Tabelle verwenden.

Tabellenliste erstellen (fileno int, Dateiname varchar (max));


Lassen Sie uns Beispieldaten einfügen.

Fügen Sie die Werte in die Dateiliste ein (1, 'C: \ mywork \ tech-recipes.rar'). Einfügen in die Dateiliste VALUES (2, 'C: \ mywork \ barfi.mp3');


Hier können wir die Funktion dbo.fc_FileExists (dateiname) verwenden, um zu prüfen, ob die Datei vorhanden ist oder nicht.

Wählen Sie Fileno, Dateiname, dbo.fc_FileExists (Dateiname) als IsFileExists aus Dateiliste aus.
Dateiname IsFileExists ----------- ---------------------------------- ------------ 1 C: \ mywork \ tech-recipes.rar 1 2 C: \ mywork \ barfi.mp3 0

IsFileExists ist eine temporäre Kolumne. Wenn Sie eine permanente Spalte erstellen möchten, müssen Sie die Aktualisierungsabfrage verwenden.