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