Hallo zusammen,
ich habe in einer Tabelle Dateinamen mit Pfad und möchte diese Dateien mittels xp_copy_file kopieren.
Zuerst selektiere ich mit die erforderlichen Dateinamen. Dieses Result möchte ich dann in einer Schleife durchlaufen und die Dateien kopieren.
Tabelle:
Jetzt möchte ich die Tabelle in einer Schleife durchlaufen und mit xp_copy_file die jeweilige Datei kopieren
EXEC master.sys.xp_copy_file @Quelle, @Ziel
wie kann man das machen? Ich hab das mal so versucht:
DECLARE @quelle VARCHAR(300)
DECLARE @ziel VARCHAR(300)
DECLARE @getid CURSOR
DECLARE @JobID int
SET @JobID = 12
SET @getid = CURSOR FOR
SELECT concat([PfadPaket],'\',[Paket]) as Quelle,
concat([PfadPaket],'\TEMP_SEARCH_FOLDER\',[Paket]) as Ziel
FROM [ADMIN].[dbo].[CTRL_Import_Prozess]
where IDJob = @JobID
OPEN @getid
FETCH NEXT
FROM @getid INTO @quelle, @ziel
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC master.sys.xp_copy_file @quelle, @ziel
FETCH NEXT
FROM @getid INTO @quelle, @ziel
END
CLOSE @getid
DEALLOCATE @getid
Problem ist hier, dass die Prozedur sys.xp_copy_file die Variablen nicht nimmt. Wenn ich die Pfade mit ohne Variablen verwende, also direkt schreibe, klappt es. Ist aber eher undynamisch :-(
EXEC master.sys.xp_copy_file 'd:\data\datei1.txt', 'd:\data\backup\datei1.txt'
Kann mir bitte hier jemand weiterhelfen?
Vielen Dank und Gruß
Michi
ich habe in einer Tabelle Dateinamen mit Pfad und möchte diese Dateien mittels xp_copy_file kopieren.
Zuerst selektiere ich mit die erforderlichen Dateinamen. Dieses Result möchte ich dann in einer Schleife durchlaufen und die Dateien kopieren.
Tabelle:
Quelle | Ziel |
d:\data\datei1.txt | d:\data\backup\datei1.txt |
d:\data\datei2.txt | d:\data\backup\datei2.txt |
d:\data\datei3.txt | d:\data\backup\datei3.txt |
Jetzt möchte ich die Tabelle in einer Schleife durchlaufen und mit xp_copy_file die jeweilige Datei kopieren
EXEC master.sys.xp_copy_file @Quelle, @Ziel
wie kann man das machen? Ich hab das mal so versucht:
DECLARE @quelle VARCHAR(300)
DECLARE @ziel VARCHAR(300)
DECLARE @getid CURSOR
DECLARE @JobID int
SET @JobID = 12
SET @getid = CURSOR FOR
SELECT concat([PfadPaket],'\',[Paket]) as Quelle,
concat([PfadPaket],'\TEMP_SEARCH_FOLDER\',[Paket]) as Ziel
FROM [ADMIN].[dbo].[CTRL_Import_Prozess]
where IDJob = @JobID
OPEN @getid
FETCH NEXT
FROM @getid INTO @quelle, @ziel
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC master.sys.xp_copy_file @quelle, @ziel
FETCH NEXT
FROM @getid INTO @quelle, @ziel
END
CLOSE @getid
DEALLOCATE @getid
Problem ist hier, dass die Prozedur sys.xp_copy_file die Variablen nicht nimmt. Wenn ich die Pfade mit ohne Variablen verwende, also direkt schreibe, klappt es. Ist aber eher undynamisch :-(
EXEC master.sys.xp_copy_file 'd:\data\datei1.txt', 'd:\data\backup\datei1.txt'
Kann mir bitte hier jemand weiterhelfen?
Vielen Dank und Gruß
Michi