Como actualizar datos en sql

Respuesta de
a
Usuario
Hola amigos, tengo la siguiente duda, les cuento:

tendo una bd sql server, en ella debo actualizar una tabla con distintos datos, me explico, tengo una tabla de series y esta está compuesta de distintos campos, dentro de ellos es el n° de guía, fecha y estado; estos campos los debo de actualizar en relación a una archivo .xls que me infroman, hoy en día lo hago de manera manual ( vinculo las tablas desde access y hago las consultas y actualizo, el archivo lo cargo en tablas temporales en access y actualizo por guía), esto me es útil cuando es poca información, pero hoy en día es mucha son más de 100 guías y no tengo todo el día para dedicarme a eso, mi consulta va a si hay alguna manera de hacerlo de manera masiva, tengo entendido que si pero no se como se hace, lo único que tengo claro es que me debe coincidir el n° de serie y así actualizo la fecha, la guía y el estado, espero sus comentarios desde ya gracias
Avatar
Experto
Hola puedes usar una consulta así:
SELECT * INTO Temp
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;HDR=YES; IMEX=1;
DataBase=C:\ARCHIVOEXCEL.xls;',
'SELECT NoGuia,Fecha,Estado FROM [Hoja1$]')
UPDATE TuTabla_a_Actualizar SET A.Fecha=B.Fecha, A.Guia=B.Guia,A.Estado=B.Estado 
FROM TuTabla_a_Actualizar A INNER JOIN temp B ON B.NoGuia=A.NoGuia
DROP TABLE temp
lo que hace esta consulta es insertar en una tabla temporal los registros de excel y luego hacer el update de tu tabla donde los NoGuia sean iguales y por ultimpo borra la tabla temporal.
No se que version tengas de sql. Pero en 2005 debes habilitar la opción para habilitar las consultas con OPENROWSET. Esto lo haces así:
inicio->todos los programas-> Microsfot Sql Server 2005->Configurations Tools->SQL server Surface Configuration Area->Surface Configuration Area for Features-> habilitas la opcion "Enable OPENROWSET and OPENDATASOURCE suport".
Espero te sirva cualquier problema estamos en contacto
Saludos.
 
Usuario
A pesar que pille la solución, tu respuesta la acojo muy bien y te doy las gracias,