SQL Server - Obtener y listar archivos de una ruta especifica



    Que tal, ahora me encontre con la tarea de buscar el como obtener la lista de archivos de un directorio especifico pero desde SQL SERVER.



    Referencia: http://www.simple-talk.com/sql/t-sql-programming/the-tsql-of-text-files/


    Para poder listar los archivos primero necesitaremos tener el xp_cmdshell habilitado, ya que por motivos de seguridad, cuando se instala SQL Sever este comando se deshabilita por default. Con el, podemos usar el shell privado de SQL.

    Nota: Te pido que primero que veas las opciones del comando "dir" para que puedas ver las diferentes alternativas de como usarlo y acoplarlo a tus necesidades.

    El siguiente código solo lista los nombres de los archivos de la ruta especificada


    -- Lista todos los archivos en un directorio - T-SQL 

    -- Microsoft SQL Server comando shell  - xp_cmdshell

    DECLARE  @PathName  VARCHAR(256) ,
             @CMD       VARCHAR(512)

    DECLARE @CommandShell TABLE (Line VARCHAR(512))

    SET @PathName = 'C:\LocalData\OldSite\wwwroot\EDI\exp_files\'
  
    -- /B es para solo obtener los nombres de los archivos
    SET @CMD = 'DIR ' + @PathName + ' /B'

    PRINT @CMD -- test & debug

    -- MSSQL inser exec - Insertamos los valores obtenidos de la ejecución en
    -- una tabla


    INSERT INTO 
@CommandShell
    EXEC MASTER..xp_cmdshell   @CMD 

    SELECT  
    FROM @CommandShell 
----------------------------------------------------------------------------
    Resultado
----------------------------------------------------------------------------
 Line
 File1.xls
 Myfiletext.txt
 Killlist.csv
Mushroom.pdf

 
    Bueno espero les sirva de utilidad este script, Saludos

 


Comentarios

Publicar un comentario

Entradas populares de este blog

SQL Server - How to fix orphan users

Linked Server a Postgres