Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2009, 16:55
Avatar de otreblanc
otreblanc
 
Fecha de Ingreso: mayo-2005
Ubicación: Chiapas, la última frontera...
Mensajes: 73
Antigüedad: 19 años, 7 meses
Puntos: 0
Insertar si no Existe

Hola a todos!!! Necesito que me ayuden en algo muy basico pero que me trae dando vueltas, resulta que tengo una tabla asi:

Tabla1
Clave1, clave2, Clave3
(donde la llave primaria la forman los 3 primeros campos)

Ahora al dar de alta un nuevo registro tengo que verificar primero si existe
para luego darlo de alta, lo hago asi:

1er. Paso: if not exists(select ....

2o. Paso: insert into tabla1 select clave1, clave2, ...


Mi pregunta es:
Se pueden reducir ambos pasos a 1 solo ??? posiblemente poniendo condiciones dentro del INSERT (algo asi como NOT IN)

Actualmente lo hago asi:

if not exists (
select *
from tabla1
where clave1= @clave1
and clave2= @clave2
and clave3= @calve3
)
insert into tabla1
select @clave1, @clave2, @clave3



Y quisiera ver si hay posibilidad de reducirlo; estoy con sql2005, Muchas Gracias!

Última edición por otreblanc; 31/08/2009 a las 17:20 Razón: informacion agregada