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

Preguntas similare

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

Respuesta Responder a este mensaje
#2 Aventurero
12/10/2009 - 20:36 | Informe spam
Muchas gracias MAXI.

En este momento no puedo probarlo, pero es lo que necesito exactamente.

Atentamente,


Aventurero
Respuesta Responder a este mensaje
#3 Maxi Accotto
12/10/2009 - 21:44 | Informe spam
Me alegro, en mi blog (http://blog.maxiaccotto.com) estare publicando un
ejemplo de merge vs old sentence



"Aventurero" wrote in message
news:eUsE$
Muchas gracias MAXI.

En este momento no puedo probarlo, pero es lo que necesito exactamente.

Atentamente,


Aventurero


Respuesta Responder a este mensaje
#4 Aventurero
13/10/2009 - 03:06 | Informe spam
Ya revisé el Blog y me parece fabuloso. Gracias por el dato.

Una pregunta más, que pasa si CustId de la Tabla CustomersStage está más de
una vez en el momento de insertar?

Gracias de nuevo.

Atentamente,


Aventurero
Respuesta Responder a este mensaje
#5 Maxi Accotto
14/10/2009 - 00:57 | Informe spam
Hola, y ojo con eso, si esta mas de una vez es porque esa no es la PK y tu
no deberias tener tablas sin PK :)

"Aventurero" wrote in message
news:
Ya revisé el Blog y me parece fabuloso. Gracias por el dato.

Una pregunta más, que pasa si CustId de la Tabla CustomersStage está más
de una vez en el momento de insertar?

Gracias de nuevo.

Atentamente,


Aventurero


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida