Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/03/2013, 09:57
gustavooo13
 
Fecha de Ingreso: marzo-2013
Mensajes: 3
Antigüedad: 11 años, 1 mes
Puntos: 0
Como recorrer toda la tabla con mi stored??

Estimados buenos dias, este es mi primer post. Estoy creando un script para copiar archivos segun el nombre (demasiado personalizado) y ete aqui que he probado de hacerlo con cursor o sin cursor y de las dos formas solo copia el primer archivo y no puedo hacerlo recorrer por toda la tabla.
No se fijen en la improlijidad del codigo es que lo necesito urgente para separar .mp3 de un archivo de mas de 10 mil.

Agradezco infinitamente cualquier ayuda.

sin cursor
--------------
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
alter procedure [dbo].[sp_copia_archivos_nocursor] as
-- -------------------------------
-- Argumentos
-- -------------------------------
-- <Argumentos tipo valor default descripcion>
declare
@loop int
,@counter int
,@nombre nvarchar(100)
,@ls_archivo_origen varchar(100) --archvio origen
,@ls_archivo_destino varchar(100) --archvio origen
,@pparte nvarchar(100)
,@sparte nvarchar(100)
,@sComando as varchar(200)


SET @loop = isnull((SELECT count(*) FROM nombre),0);
SET @counter= 1;
set @nombre = (select nombre from nombre where id = @counter);
set @pparte = 'c:\audios prueba\';
set @sparte = 'D:\b';
set @ls_archivo_origen = @pparte+@nombre+'.mp3';
set @ls_archivo_destino = @sparte;
set @sComando='XCOPY "' + @ls_archivo_origen +'" ' + @ls_archivo_destino;


WHILE @loop >0 and @counter <=@loop

begin


exec xp_cmdshell @sComando

SET @counter = @counter +1
select 0
return @@error
end
------------------------
con cursor
------------------------
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
alter procedure [dbo].[sp_copia_archivos_cursor] as
-- -------------------------------
-- Argumentos
-- -------------------------------
-- <Argumentos tipo valor default descripcion>
declare
@nombre varchar(100)
,@ls_archivo_origen varchar(100) --archvio origen
,@ls_archivo_destino varchar(100) --archvio origen
,@pparte nvarchar(100)
,@sparte nvarchar(100)
,@sComando as varchar(200)
set @pparte = 'c:\audios prueba\';
set @sparte = 'D:\b';
set @ls_archivo_origen = @pparte+@nombre+'.mp3';
set @ls_archivo_destino = @sparte;
set @sComando='XCOPY "' + @ls_archivo_origen +'" ' + @ls_archivo_destino

DECLARE
nnombre CURSOR FOR select nombre from nombre

OPEN nnombre

FETCH nnombre into @nombre


WHILE (@@FETCH_STATUS = 0 )

BEGIN

exec xp_cmdshell @sComando



FETCH nnombre into @nombre
select 0
return @@error
END

CLOSE nnombre

DEALLOCATE nnombre


Desde ya gracias