Insertar y Actualizar Tabla al tiempo

12/10/2009 - 20:06 por Aventurero | Informe spam
Buenas tardes.

Necesito Insertar registros y actualizar los que existen.
Y necesito saber si se puede en una sola instruccion en Sql Server 2005 y en
un Store Procedure.

Tengo esta tabla en la Base de Datos
TablaClientes
Identificacion (clave única)
Nombres
Apellidos
Direccion
Ciudad
Y otra
Tengo esta tabla TablaTemporal, con registros de un punto de venta para
actualizar los registros
Identificacion
Nombres
Apellidos
Direccion
Ciudad
Pero no se como hacer para Insertar los registros que no existen y
actualizar los que están en la tabla TablaClientes dese la tabla
TablaTemporal.

Gracias por su ayuda.

Atentamente,


Aventurero
 

Leer las respuestas

#1 Maxi Accotto
12/10/2009 - 20:27 | Informe spam
Hola, en una sola sentencia solo se puede en 2008 con MERGE, en versiones
anteriores debes hacer las dos operaciones.
Claro que se puede poner dentro de un store

Aqui te dejo un ejemplo

BEGIN TRAN

UPDATE TGT
SET TGT.companyname = SRC.companyname,
TGT.phone = SRC.phone,
TGT.address = SRC.address
FROM dbo.Customers AS TGT
JOIN dbo.CustomersStage AS SRC
ON TGT.custid = SRC.custid;

INSERT INTO dbo.Customers (custid, companyname, phone, address)
SELECT custid, companyname, phone, address
FROM dbo.CustomersStage AS SRC
WHERE NOT EXISTS
(SELECT * FROM dbo.Customers AS TGT
WHERE TGT.custid = SRC.custid);


"Aventurero" wrote in message
news:#
Buenas tardes.

Necesito Insertar registros y actualizar los que existen.
Y necesito saber si se puede en una sola instruccion en Sql Server 2005 y
en un Store Procedure.

Tengo esta tabla en la Base de Datos
TablaClientes
Identificacion (clave única)
Nombres
Apellidos
Direccion
Ciudad
Y otra
Tengo esta tabla TablaTemporal, con registros de un punto de venta para
actualizar los registros
Identificacion
Nombres
Apellidos
Direccion
Ciudad
Pero no se como hacer para Insertar los registros que no existen y
actualizar los que están en la tabla TablaClientes dese la tabla
TablaTemporal.

Gracias por su ayuda.

Atentamente,


Aventurero

Preguntas similares