Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Kiểm tra tệp có tồn tại hay không trong máy chủ sql?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Điền các ngày còn thiếu theo nhóm

  2. Chuyển đổi tên tháng thành số tháng trong SQL Server (T-SQL)

  3. SQL - Trừ một giá trị cạn kiệt khỏi các hàng

  4. Chuyển đổi ‘datetimeoffset’ thành ‘datetime’ trong SQL Server (Ví dụ T-SQL)

  5. Làm cách nào để mở rộng các giá trị được phân tách bằng dấu phẩy thành các hàng riêng biệt bằng SQL Server 2005?