Importacion Masiva de TXT
Publicado por ANTONIO (28 intervenciones) el 26/11/2021 09:38:52
Trabajo con Sql Server Management Studio v18.4
Quiero importar el contenido de una serie de TXT a una tabla de mi base de datos.
Previamente he importado a otra tabla temporal el nombre de los TXT que quiero tratar (ya que no quiero tratar los antiguos), mediante la siguiente instruccion :
CREATE TABLE #DirectoryTree (
id int IDENTITY(1,1)
,subdirectory nvarchar(512)
,depth int
,isfile bit);
INSERT #DirectoryTree (subdirectory,depth,isfile)
EXEC master.sys.xp_dirtree 'E:\isis\bd',1,1 ;
Como decía, despues hago otra serie de comprobaciones quedandome con otra temporal con los nombres de todos los TXT cuya información quiero importar a mi tabla de la Base de Datos.
Mi problema es cuando quiero hacer esa importación masiva. Entiendo que cuando es un único TXT no hay problema, como por ejemplo :
INSERT INTO #LecturaTxTs
SELECT * FROM OPENROWSET(
BULK 'E:\isis\bd\ejemplo.txt',
SINGLE_BLOB) AS x;
Pero si quiero traerme todos y no solo uno en concreto no se como proceder.
Aparte de que no se si hay alguna clausula del tipo WHERE para que me compare con mi tabla temporal para solo hacer la importación masiva de solo aquellos txt cuyo nombre me coincida con dicha tabla temporal que ya me creé.
Muchas gracias
Quiero importar el contenido de una serie de TXT a una tabla de mi base de datos.
Previamente he importado a otra tabla temporal el nombre de los TXT que quiero tratar (ya que no quiero tratar los antiguos), mediante la siguiente instruccion :
CREATE TABLE #DirectoryTree (
id int IDENTITY(1,1)
,subdirectory nvarchar(512)
,depth int
,isfile bit);
INSERT #DirectoryTree (subdirectory,depth,isfile)
EXEC master.sys.xp_dirtree 'E:\isis\bd',1,1 ;
Como decía, despues hago otra serie de comprobaciones quedandome con otra temporal con los nombres de todos los TXT cuya información quiero importar a mi tabla de la Base de Datos.
Mi problema es cuando quiero hacer esa importación masiva. Entiendo que cuando es un único TXT no hay problema, como por ejemplo :
INSERT INTO #LecturaTxTs
SELECT * FROM OPENROWSET(
BULK 'E:\isis\bd\ejemplo.txt',
SINGLE_BLOB) AS x;
Pero si quiero traerme todos y no solo uno en concreto no se como proceder.
Aparte de que no se si hay alguna clausula del tipo WHERE para que me compare con mi tabla temporal para solo hacer la importación masiva de solo aquellos txt cuyo nombre me coincida con dicha tabla temporal que ya me creé.
Muchas gracias
Valora esta pregunta


0