Tạo một chức năng như vậy:
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
Chỉnh sửa bảng của bạn và thêm một cột được tính toán (IsExists BIT). Đặt biểu thức thành:
dbo.fn_FileExists(filepath)
Sau đó, chỉ cần chọn:
SELECT * FROM dbo.MyTable where IsExists = 1
Cập nhật :
Để sử dụng hàm bên ngoài một cột được tính toán:
select id, filename, dbo.fn_FileExists(filename) as IsExists
from dbo.MyTable
Cập nhật :
Nếu hàm trả về 0 cho một tệp đã biết thì có thể có vấn đề về quyền. Đảm bảo rằng tài khoản của SQL Server có đủ quyền để truy cập vào thư mục và tệp. Chỉ đọc phải là đủ.
Và CÓ, theo mặc định, tài khoản 'DỊCH VỤ MẠNG' sẽ không có đủ quyền vào hầu hết các thư mục. Nhấp chuột phải vào thư mục được đề cập và chọn 'Thuộc tính', sau đó nhấp vào tab 'Bảo mật'. Nhấp vào 'Chỉnh sửa' và thêm 'Dịch vụ mạng'. Nhấp vào 'Áp dụng' và kiểm tra lại.