Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengesahkan Kewujudan Fail dalam SQL Server untuk Setiap Baris dalam Jadual?
Mengesahkan Kewujudan Fail dalam SQL Server
Pernyataan Masalah
Diberikan jadual dengan laluan fail disimpan dalam lajur, tugasnya adalah untuk menentukan sama ada setiap fail wujud secara fizikal dalam sistem fail. Matlamatnya adalah untuk menambah lajur sementara untuk menunjukkan "Ya" untuk fail sedia ada dan "Tidak" untuk fail yang tidak wujud.
Penyelesaian
Untuk mencapai matlamat ini, kami boleh menggunakan prosedur tersimpan lanjutan master.dbo.xp_fileexist, yang menyemak kewujudan fail tertentu. Walau bagaimanapun, untuk menggunakan teknik ini pada jadual, fungsi tersuai diperlukan.
Fungsi Tersuai
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
Menambah Lajur Terkira
Edit jadual untuk menambah lajur yang dikira dipanggil IsExists dengan ungkapan:
dbo.fn_FileExists(filepath)
Penggunaan
Kini, anda hanya boleh memilih rekod dengan fail sedia ada:
SELECT * FROM dbo.MyTable where IsExists = 1
Penggunaan Alternatif (Di Luar Lajur Pengiraan)
Untuk menggunakan fungsi di luar pengiraan lajur:
select id, filename, dbo.fn_FileExists(filename) as IsExists from dbo.MyTable
Menyelesaikan masalah
Jika fungsi mengembalikan 0 untuk fail yang diketahui, semak kebenaran folder dan pastikan akaun SQL Server mempunyai akses baca sahaja. Selain itu, tambahkan akaun "Perkhidmatan Rangkaian" pada tetapan keselamatan folder untuk memberikan akses.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Kewujudan Fail dalam SQL Server untuk Setiap Baris dalam Jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!