Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Проверете дали файл съществува или не в sql сървър?

Създайте функция по следния начин:

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 Server има достатъчно разрешения за достъп до папката и файловете. Само за четене трябва да е достатъчно.

И ДА, по подразбиране акаунтът „МРЕЖОВА УСЛУГА“ няма да има достатъчно права в повечето папки. Щракнете с десния бутон върху въпросната папка и изберете „Свойства“, след което щракнете върху раздела „Сигурност“. Щракнете върху „Редактиране“ и добавете „Мрежова услуга“. Щракнете върху „Прилагане“ и тествайте отново.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server Standard Edition High Availability Futures

  2. Поправете съобщение 529 „Не е позволено изрично преобразуване от тип данни int в xml“ в SQL Server

  3. Генерирайте набор от резултати от нарастващи дати в TSQL

  4. Инсталиране на SQL Server 2017

  5. Използвайте FILE_NAME(), за да върнете логическото име на файл за даден идентификатор на файл в SQL Server