Tengo una consulta que rescata la información por un lado de los Nombres de Ficheros Txt que tengo en una carpeta contenedora
Por otro lado el bulk insert que extrae la información de cada uno de estos.
Independientemente tengo los resultados. Pero en una Tabla Final necesitaría tener el nombre de mi txt asociado a su contenido.
Algo así como
Campo 1 Campo 2
A1.TXT Contenido Registro1
A1.TXT Contenido Registro2
A1.TXT Contenido Registro3
A2.TXT Contenido Registro1
A2.TXT Contenido Registro2
A2.TXT Contenido Registro3
Mi codigo actual es el siguiente :
-- Tabla temporal con Nombre de los distintos txt
IF OBJECT_ID('tempdb..#DirectoryTree')IS NOT NULL
DROP TABLE #TEMP_FILES;
CREATE TABLE #TEMP_FILES (
id int IDENTITY(1,1)
,subdirectory nvarchar(512)
,depth int
,isfile bit);
INSERT #TEMP_FILES (subdirectory,depth,isfile)
EXEC master.sys.xp_dirtree 'E:\isis\Originales',1,1 -- PARA MIS PRUEBAS DE MOMENTO APUNTO AHI - CAMBIAR POR E:\isis\Originales
;
-- Tabla temporal (con un bulk insert) con el contenido de x registros por cada txt
IF OBJECT_ID('TEMPDB..#TEMP_RESULTS') IS NOT NULL DROP TABLE #TMP
CREATE TABLE #TEMP_RESULTS
(
Contenido1 VARCHAR(MAX)
)
DECLARE
@FILENAME VARCHAR(MAX),
@SQL VARCHAR(MAX)
WHILE EXISTS(SELECT * FROM #TEMP_FILES)
BEGIN
SET @FILENAME = (SELECT TOP 1 subdirectory FROM #TEMP_FILES )
SET @SQL = 'BULK INSERT #TEMP_RESULTS
FROM ''E:\isis\Originales\' + @FILENAME +' ''
WITH (FIRSTROW = 1, FIELDTERMINATOR = ''\t'', ROWTERMINATOR = ''\n'');'
PRINT @SQL
EXEC(@SQL)
DELETE FROM #TEMP_FILES WHERE subdirectory = @FILENAME
END
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)