Para realizar esta tarea necesitamos ejecutar el procedimiento xp_cmdshell, el cual viene deshabilitado por defecto. Para habilitarlo ejectuamos el siguiente T-SQL antes de nada:
-- Primero permitimos que las opciones avanzadas puedan ser cambiadas.
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
-- Despues habilitamos el procedimiento.
EXEC sp_configure 'xp_cmdshell', 1;
GO
RECONFIGURE;
GO
-- OPCIONAL. Podemos volver a dejar las opciones avanzadas como estaban
EXEC sp_configure 'show advanced options', 0;
GO
RECONFIGURE;
GO
El procedimiento xp_cmdshell devuelve el resultado de una shell de comandos como lineas de texto. Podemos almacenar dichas lineas en una tabla para su posterior consulta. Almacenaremos en una tabla el resultado de DIR *.xml /B. Posteriormente podremos recorrer esos datos para importar esos ficheros, por ejemplo.
DECLARE
@Path varchar(50),
@Files varchar(5),
@Cmd varchar(150)
SET @Path = 'C:\Results'
SET @Files='*.xml'
SET @Cmd =
'DIR "' +
@Path +
CASE WHEN RIGHT(@Path, 1) = '\' THEN ''
ELSE '\'
END
+ @Files
+ '"'
+ ' /B'
CREATE TABLE #tmpBuscaFiles(id int Identity, line varchar(255))
INSERT INTO #tmpBuscaFiles
EXEC master..xp_CmdShell @Cmd
select * from #tmpBuscaFiles
No hay comentarios:
Publicar un comentario