sql >> Database teknologi >  >> RDS >> Sqlserver

Kontroller, om filen findes eller ej i sql-serveren?

Opret en funktion som sådan:

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

Rediger din tabel og tilføj en beregnet kolonne (IsExists BIT). Indstil udtrykket til:

dbo.fn_FileExists(filepath)

Vælg derefter:

SELECT * FROM dbo.MyTable where IsExists = 1

Opdater :

Sådan bruger du funktionen uden for en beregnet kolonne:

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

Opdater :

Hvis funktionen returnerer 0 for en kendt fil, er der sandsynligvis et tilladelsesproblem. Sørg for, at SQL Server-kontoen har tilstrækkelige tilladelser til at få adgang til mappen og filerne. Skrivebeskyttet burde være nok.

Og JA, som standard vil 'NETVÆRKSERVICE'-kontoen ikke have tilstrækkelig ret til de fleste mapper. Højreklik på den pågældende mappe og vælg 'Egenskaber', klik derefter på fanen 'Sikkerhed'. Klik på 'Rediger' og tilføj 'Netværkstjeneste'. Klik på 'Anvend' og test igen.



  1. Tæl alle objekter i din database

  2. Eksempel på Java i Oracle-database

  3. Rækkefølgen af ​​en SQL Select-sætning uden Order By-sætning

  4. Hvad er den maksimale størrelse på VARCHAR2 i PL/SQL og SQL?