Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Sprawdź, czy plik istnieje, czy nie na serwerze sql?

Utwórz taką funkcję:

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

Edytuj tabelę i dodaj kolumnę obliczeniową (IsExists BIT). Ustaw wyrażenie na:

dbo.fn_FileExists(filepath)

Następnie wybierz:

SELECT * FROM dbo.MyTable where IsExists = 1

Aktualizacja :

Aby użyć funkcji poza kolumną wyliczaną:

select id, filename, dbo.fn_FileExists(filename) as IsExists
from dbo.MyTable

Aktualizacja :

Jeśli funkcja zwraca 0 dla znanego pliku, prawdopodobnie występuje problem z uprawnieniami. Upewnij się, że konto SQL Server ma wystarczające uprawnienia dostępu do folderu i plików. Tylko do odczytu powinno wystarczyć.

I TAK, domyślnie konto „USŁUGA SIECIOWA” nie będzie mieć wystarczających praw do większości folderów. Kliknij prawym przyciskiem myszy odpowiedni folder i wybierz „Właściwości”, a następnie kliknij kartę „Zabezpieczenia”. Kliknij „Edytuj” i dodaj „Usługa sieciowa”. Kliknij „Zastosuj” i przetestuj ponownie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie SQL, aby znaleźć ostatni dzień miesiąca

  2. Jak zainstalować program SQL Server na komputerze Mac M1 (ARM64)

  3. jak skonfigurować plik konfiguracyjny hibernacji dla serwera sql?

  4. 3 sposoby zwracania wierszy zawierających znaki alfanumeryczne w SQL Server

  5. Zdobądź wszystkich rodziców na dziecko