Opret en funktion som sådan:
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
Rediger din tabel og tilføj en beregnet kolonne (IsExists BIT). Indstil udtrykket til:
dbo.fn_FileExists(filepath)
Vælg derefter:
SELECT * FROM dbo.MyTable where IsExists = 1
Opdater :
Sådan bruger du funktionen uden for en beregnet kolonne:
select id, filename, dbo.fn_FileExists(filename) as IsExists
from dbo.MyTable
Opdater :
Hvis funktionen returnerer 0 for en kendt fil, er der sandsynligvis et tilladelsesproblem. Sørg for, at SQL Server-kontoen har tilstrækkelige tilladelser til at få adgang til mappen og filerne. Skrivebeskyttet burde være nok.
Og JA, som standard vil 'NETVÆRKSERVICE'-kontoen ikke have tilstrækkelig ret til de fleste mapper. Højreklik på den pågældende mappe og vælg 'Egenskaber', klik derefter på fanen 'Sikkerhed'. Klik på 'Rediger' og tilføj 'Netværkstjeneste'. Klik på 'Anvend' og test igen.