Vytvořte funkci takto:
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
Upravte tabulku a přidejte vypočítaný sloupec (IsExists BIT). Nastavte výraz na:
dbo.fn_FileExists(filepath)
Poté stačí vybrat:
SELECT * FROM dbo.MyTable where IsExists = 1
Aktualizovat :
Chcete-li použít funkci mimo vypočítaný sloupec:
select id, filename, dbo.fn_FileExists(filename) as IsExists
from dbo.MyTable
Aktualizovat :
Pokud funkce vrátí 0 pro známý soubor, pravděpodobně došlo k problému s oprávněními. Ujistěte se, že účet SQL Server má dostatečná oprávnění pro přístup ke složce a souborům. Mělo by stačit pouze čtení.
A ANO, ve výchozím nastavení nebude mít účet 'NETWORK SERVICE' dostatečná práva do většiny složek. Klikněte pravým tlačítkem na příslušnou složku a vyberte „Vlastnosti“ a poté klikněte na kartu „Zabezpečení“. Klikněte na 'Upravit' a přidejte 'Síťová služba'. Klikněte na „Použít“ a znovu otestujte.