Jump to content

T-SQL - Prüfen, ob Pfad existiert


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo Community,
 
Ich habe eine Prozedur, welche unter anderem einen Pfad und einen Dateinamen in eine Tabelle schreibt. Hier ein Auszug:
 
 

DECLARE

--

@FIRMA INTEGER, 
@BATYPE CHAR(1),
@BANUMMER VARCHAR(15),
@LFDNR INTEGER,
@DOCDIR VARCHAR(254),
@DOCTYPE INTEGER,
@DOCNAME VARCHAR(254),
@DOCINFO VARCHAR(254),

INSERT INTO BAKDOKS (
FIRMA, BATYPE, BANUMMER, LFDNR,
DOCDIR, DOCTYP, DOCNAME, DOCINFO)
--
SELECT
FIRMA, BATYPE, BANUMMER,
-- LFDNR
'1',
-- DOCDIR
'c:\temp', '1',
-- DOCNAME
(BANUMMER +'-astl.pdf'),
-- DOCINFO
'Stückliste'
--

FROM BAKOPF
WHERE ISNULL(LTRIM(RTRIM(BANUMMER)),'') <> ''
AND NOT EXISTS(SELECT * FROM BAKDOKS WHERE BAKDOKS.FIRMA = BAKOPF.FIRMA AND BAKDOKS.BANUMMER = BAKOPF.BANUMMER AND BAKDOKS.LFDNR = 1)

 
Nun möchte ich allerdings diese Werte nur in die Tabelle BAKDOKS schreiben, wenn der Pfad inkl. Dateiname ('c:\temp\' + BANUMMER + '-astl.pdf') auch tatsächlich existiert (!).
 
Zur Prüfung, ob ein Pfad existiert habe ich folgenden Ansatz gefunden:
 

DECLARE @datei_vorhanden int 
EXEC master..xp_fileexist 'c:\winnt\notepad.exe', @datei_vorhanden OUTPUT 
IF @datei_vorhanden = 1 
PRINT 'Datei existiert' 
ELSE 
PRINT 'Datei existiert nicht.'


 
Leider weiß ich nicht, wie ich das in mein Statement einbauen kann. Ein EXEC im Where-Clause ist nicht möglich, soviel ich weiß.
 
Kann jemand helfen?
 
Danke :-)
 
 
Gruß
 
Faraday
 

bearbeitet von Faraday
  • 2 Monate später...
Geschrieben

Moin,

 

es wird davon abgeraten, innerhalb von T-SQL-Code Shellfunktionen auszuführen. Meist ist es ein sinnvollerer Weg, solche Prüfungen außerhalb der Datenbank auszuführen und dann von dort ein Ergebnis in die Datenbank zu schreiben (z.B. in einer Hilfstabelle).

 

Gruß, Nils

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...