locked
Copiar un archivo con instrucciones de SQL RRS feed

  • Pregunta

  • SQL Server 2008

    Necesito copiar un archivo de mi disco duro local a otra ruta en mi mismo disco duro

    genere una sp, pero no me deja copiar, me marca Invalid Path, como si tomara la ruta de otro lado (server) y no lo hace desde mi maquin como le especifico eso o como hago una copia?

    Gracias

    Anexo script de mi sp

    -- exec sp_copia_archivos;1 'C:\FOTOS_FACTURAS\DE_PRUEBA.JPG', 'C:\FOTOS_FACTURAS\DE_PRUEBA_XXy.JPG'
    
    ALTER procedure [dbo].[sp_copia_archivos]
    	--	-------------------------------
    	--	Argumentos
    	--	-------------------------------
    --	<Argumentos		tipo		valor default	descripcion>
    	 @ls_archivo_origen varchar(100)			--archvio origen
    	,@ls_archivo_destino varchar(100)			--archvio origen
    	
    as
           
    begin
    	declare
    		@sComando as varchar(200)
    
    	set @sComando='XCOPY ' + @ls_archivo_origen + ' ' + @ls_archivo_destino
    
        exec xp_cmdshell @sComando
    
    	--	-------------------------------
    	FIN:
    	--	-------------------------------
    		select 0
    		return @@error
    end	
    
    

    viernes, 31 de agosto de 2012 18:20

Respuestas

  • Tu instancia de SQL Server esta en otra maquina? si es asi no funcionara, ya que los path son rutas para el servidor donde esta la instancia..

    Esto tiene mejor oportunidad si lo gestionas desde una aplicacion para manejar los archivos..

    viernes, 31 de agosto de 2012 18:45

Todas las respuestas

  • Tu instancia de SQL Server esta en otra maquina? si es asi no funcionara, ya que los path son rutas para el servidor donde esta la instancia..

    Esto tiene mejor oportunidad si lo gestionas desde una aplicacion para manejar los archivos..

    viernes, 31 de agosto de 2012 18:45
  • Asi es mi instancia esta en otra maquina, por lo que me dices no se va poder.

    Era lo que queria confirmar,

    De todos modos, muchas gracias

    viernes, 31 de agosto de 2012 20:03
  • Hola.

    Sí se puede copiar. Sólo has de indicar rutas absolutas, no relativas, y contar con los permisos necesarios. De todos modos, desde la capa de aplicación, como indica Roland, es más adecuado.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    sábado, 1 de septiembre de 2012 8:25
    Moderador
  • Me funcionó correctamente pero le quité la X al comando XCOPY y solo usé COPY

    Así:

        declare
    @ls_archivo_origen varchar(100) --archvio origen
    ,@ls_archivo_destino varchar(100) --archvio destino
    ,@sComando as varchar(200)

        set @ls_archivo_origen='E:\DocAut\E02\20160808\FAC\FAC_20160808_002006000000251.PDF'
        set @ls_archivo_destino='E:\DocAut\AVON\FAC_20160808_002006000000251.PDF'

        set @sComando='COPY ' + @ls_archivo_origen + ' ' + @ls_archivo_destino

        exec xp_cmdshell @sComando

    • Propuesto como respuesta Franklin Moreira miércoles, 7 de noviembre de 2018 21:25
    miércoles, 7 de noviembre de 2018 21:24