Skapa en funktion så här:
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
Redigera din tabell och lägg till en beräknad kolumn (IsExists BIT). Ställ in uttrycket på:
dbo.fn_FileExists(filepath)
Välj sedan bara:
SELECT * FROM dbo.MyTable where IsExists = 1
Uppdatera :
För att använda funktionen utanför en beräknad kolumn:
select id, filename, dbo.fn_FileExists(filename) as IsExists
from dbo.MyTable
Uppdatera :
Om funktionen returnerar 0 för en känd fil finns det troligtvis ett behörighetsproblem. Se till att SQL Server-kontot har tillräckliga behörigheter för att komma åt mappen och filerna. Skrivskyddad bör vara tillräckligt.
Och JA, som standard kommer kontot 'NÄTVERKSTJÄNST' inte att ha tillräcklig rätt till de flesta mappar. Högerklicka på mappen i fråga och välj "Egenskaper", klicka sedan på fliken "Säkerhet". Klicka på "Redigera" och lägg till "Nätverkstjänst". Klicka på "Apply" och testa igen.