इस तरह एक फंक्शन बनाएं:
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
अपनी तालिका संपादित करें और एक परिकलित कॉलम (IsExists BIT) जोड़ें। व्यंजक को इस पर सेट करें:
dbo.fn_FileExists(filepath)
फिर बस चुनें:
SELECT * FROM dbo.MyTable where IsExists = 1
अपडेट करें :
परिकलित कॉलम के बाहर फ़ंक्शन का उपयोग करने के लिए:
select id, filename, dbo.fn_FileExists(filename) as IsExists
from dbo.MyTable
अपडेट करें :
यदि फ़ंक्शन किसी ज्ञात फ़ाइल के लिए 0 देता है, तो संभावना है कि कोई अनुमति समस्या है। सुनिश्चित करें कि SQL सर्वर के खाते में फ़ोल्डर और फ़ाइलों तक पहुँचने के लिए पर्याप्त अनुमतियाँ हैं। केवल पढ़ने के लिए पर्याप्त होना चाहिए।
और हाँ, डिफ़ॉल्ट रूप से, 'नेटवर्क सेवा' खाते का अधिकांश फ़ोल्डरों में पर्याप्त अधिकार नहीं होगा। विचाराधीन फ़ोल्डर पर राइट क्लिक करें और 'गुण' चुनें, फिर 'सुरक्षा' टैब पर क्लिक करें। 'संपादित करें' पर क्लिक करें और 'नेटवर्क सेवा' जोड़ें। 'लागू करें' पर क्लिक करें और पुनः परीक्षण करें।