Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ayuda con Procedimiento Almacenado

Estas en el tema de Ayuda con Procedimiento Almacenado en el foro de SQL Server en Foros del Web. Me pueden ayudar .. la duda es la siguiente ¿ como hago para pasar datos de una tabla a otra tabla ,pero cuando encuentre registros ...
  #1 (permalink)  
Antiguo 02/01/2009, 15:10
 
Fecha de Ingreso: octubre-2008
Mensajes: 1
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Ayuda con Procedimiento Almacenado

Me pueden ayudar ..
la duda es la siguiente ¿ como hago para pasar datos de una tabla a otra tabla ,pero cuando encuentre registros duplicados que los actualice?

Tabla1
Codigo
Descripcion

Tabla2
Codigo
Descripcion

estaba viendo un ejemplo pero no me funciono es de oracle creo pero yo lo necesito para SQL SERVER 2005

CREATE OR REPLACE PROCEDURE tarea2 IS
BEGIN
DECLARE
CURSOR rep IS SELECT Pdc_codigo_barra2, Pdc_descripcion2 FROM Temp2;
codigo_tmp varchar2(15);
producto_tmp varchar2(50);
var_tmp varchar2(15);
BEGIN
OPEN rep;
LOOP FETCH rep INTO codigo_tmp,producto_tmp;
EXIT WHEN rep%NOTFOUND;
SELECT NVL(count(*),0) INTO var_tmp FROM Temp WHERE Pdc_codigo_barra = codigo_tmp;
IF var_tmp <> 0 THEN
UPDATE Temp SET Pdc_descripcion = producto_tmp Pdc_codigo_barra = codigo_tmp;
COMMIT;
END IF;
END LOOP;
END;
END;

si alguien me pudiera ayudar porfavor es urgente.
  #2 (permalink)  
Antiguo 05/01/2009, 10:14
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Ayuda con Procedimiento Almacenado

Esto deberia ayudarte:
Código sql:
Ver original
  1. INSERT INTO Tabla1(Codigo, Descripcion)
  2. SELECT Codigo, Descripcion
  3. FROM Tabla1
  4. GROUP BY Codigo, Descripcion
  5. HAVING COUNT(*)>1
Puedes ponerlo en Job o en un Trigger.
Suerte!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 05/01/2009, 11:40
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
Respuesta: Ayuda con Procedimiento Almacenado

Parece que lo que quiere hacer Toxico23 es un Merge...

* No es recomendado utilizar cursores para este tipo de operaciones ya que te pega directamente en el performance, lo mejor es hacerlo masivamente.


si estas utilizando 200 o 2005 tendrias que hacer un Update de los registros que ya existen y luego Insert con los registros que faltan...utilizando los campos llave en cada caso...

SQL 2008 ya trae esta sentencia de forma directa...


Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.

Última edición por Andres95; 05/01/2009 a las 12:18
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:48.