MERGE

10/02/2009 - 18:58 por José Antonio Muñoz | Informe spam
Hola al grupo,

necesito realizar un procedimiento que actualiza un conjunto de tablas a
partir de una base de datos externa, He observado que la función MERGE
realiza muy bien el proceso pero ¿como puedo actualizar sin conocer los
campos de las tablas?, es decir, actualizar automáticamente todos los campos
que coinciden en las tablas origen y destino. Y también ¿como puedo
actualizar aquellos campos que son de un tipo determinado, por ejemplo,
"integer" y tranformar los datos en otro tipo según la tabla destino,
"boolean"?.

Gracias de antemano y saludos,
José Antonio Muñoz.

Preguntas similare

Leer las respuestas

#1 Maxi
10/02/2009 - 19:43 | Informe spam
Hola, sin conocer lo que vas a hacer merge es complicado ;) porque no nos
cuentas el motivo por el cual no conoces los campos?



Maxi Accotto
Microsoft MVP en SQL Server
Consultor en SQL Total Consulting



"José Antonio Muñoz" escribió en el mensaje de
noticias:#
Hola al grupo,

necesito realizar un procedimiento que actualiza un conjunto de tablas a
partir de una base de datos externa, He observado que la función MERGE
realiza muy bien el proceso pero ¿como puedo actualizar sin conocer los
campos de las tablas?, es decir, actualizar automáticamente todos los
campos que coinciden en las tablas origen y destino. Y también ¿como puedo
actualizar aquellos campos que son de un tipo determinado, por ejemplo,
"integer" y tranformar los datos en otro tipo según la tabla destino,
"boolean"?.

Gracias de antemano y saludos,
José Antonio Muñoz.

Respuesta Responder a este mensaje
#2 Rubén Garrigós
10/02/2009 - 23:55 | Informe spam
Hola Jose Antonio,

Mucho me temo que te lo tendrás que "currar" un poco tu a base de generar
código dinámico que genere el MERGE apropiado a partir de los metadatos.
Para ello quizás sea más util que el proceso te importe a una tabla temporal
o similar y a partir de ahi con sus metadatos generes el código aplicando
las reglas de conversión que consideres apropiadas.

Rubén Garrigós
Solid Quality Mentors

"José Antonio Muñoz" wrote in message
news:%
Hola al grupo,

necesito realizar un procedimiento que actualiza un conjunto de tablas a
partir de una base de datos externa, He observado que la función MERGE
realiza muy bien el proceso pero ¿como puedo actualizar sin conocer los
campos de las tablas?, es decir, actualizar automáticamente todos los
campos que coinciden en las tablas origen y destino. Y también ¿como puedo
actualizar aquellos campos que son de un tipo determinado, por ejemplo,
"integer" y tranformar los datos en otro tipo según la tabla destino,
"boolean"?.

Gracias de antemano y saludos,
José Antonio Muñoz.

Respuesta Responder a este mensaje
#3 Jose Mariano Alvarez
11/02/2009 - 02:23 | Informe spam
Por que no usas el SSIS que al seleccionar los distintos task te ayuda y no
tienes que escribir tanto.
.

En el caso del MERGE no es muy dificir modifical o hacer con un generador de
codigo las sentencias necesarias si las columnas en la tabla externa e
interna tienen el mismo nombre y por supuesto hay una PK.



Saludos


Ing. Jose Mariano Alvarez
SQLTotal Consulting

(Cambia los ceros por O y saca lo que sobra)

Este mensaje se proporciona tal como es, SIN GARANTIAS de ninguna clase. Por
favor tratar de indicar la versión de SQL y Service Pack. La inclusión de
(CREATE, INSERTS, etc.) para poder reproducir el problema también ayuda.










"José Antonio Muñoz" wrote in message
news:#
Hola al grupo,

necesito realizar un procedimiento que actualiza un conjunto de tablas a
partir de una base de datos externa, He observado que la función MERGE
realiza muy bien el proceso pero ¿como puedo actualizar sin conocer los
campos de las tablas?, es decir, actualizar automáticamente todos los
campos que coinciden en las tablas origen y destino. Y también ¿como puedo
actualizar aquellos campos que son de un tipo determinado, por ejemplo,
"integer" y tranformar los datos en otro tipo según la tabla destino,
"boolean"?.

Gracias de antemano y saludos,
José Antonio Muñoz.

Respuesta Responder a este mensaje
#4 José Antonio Muñoz
11/02/2009 - 08:38 | Informe spam
Por que son muchas tablas (unas 50 tablas) y alguna de ellas tienen muchos
campos (sobre 100), entonces crear instrucciones MERGE o UPDATE para
actualizar estas tablas me genera mucho código. Es por eso que necesitaba
una intrucción que con poco código escrito realize el proceso de
actualización, aunque de todas formas voy a necesitar escribir 50
instrucciones, una por cada tabla. Entonces ¿la instrucción MERGE o UPDATE
no es capaz de actualizar una tabla a partir de otra de manera automática
sin tener que especificar los campos?

saludos,
José Antonio Muñoz.

"Maxi" escribió en el mensaje de noticias
news:
Hola, sin conocer lo que vas a hacer merge es complicado ;) porque no nos
cuentas el motivo por el cual no conoces los campos?



Maxi Accotto
Microsoft MVP en SQL Server
Consultor en SQL Total Consulting



"José Antonio Muñoz" escribió en el mensaje de
noticias:#
Hola al grupo,

necesito realizar un procedimiento que actualiza un conjunto de tablas a
partir de una base de datos externa, He observado que la función MERGE
realiza muy bien el proceso pero ¿como puedo actualizar sin conocer los
campos de las tablas?, es decir, actualizar automáticamente todos los
campos que coinciden en las tablas origen y destino. Y también ¿como
puedo actualizar aquellos campos que son de un tipo determinado, por
ejemplo, "integer" y tranformar los datos en otro tipo según la tabla
destino, "boolean"?.

Gracias de antemano y saludos,
José Antonio Muñoz.

Respuesta Responder a este mensaje
#5 José Antonio Muñoz
11/02/2009 - 08:40 | Informe spam
Entonces ¿como sería el proceso? ¿como puedo ejecutar la instrucción MERGE o
UPDATE sin especificar la lista de campos?

saludos,
José Antonio Muñoz.

"Rubén Garrigós" escribió en el mensaje de noticias
news:
Hola Jose Antonio,

Mucho me temo que te lo tendrás que "currar" un poco tu a base de generar
código dinámico que genere el MERGE apropiado a partir de los metadatos.
Para ello quizás sea más util que el proceso te importe a una tabla
temporal o similar y a partir de ahi con sus metadatos generes el código
aplicando las reglas de conversión que consideres apropiadas.

Rubén Garrigós
Solid Quality Mentors

"José Antonio Muñoz" wrote in message
news:%
Hola al grupo,

necesito realizar un procedimiento que actualiza un conjunto de tablas a
partir de una base de datos externa, He observado que la función MERGE
realiza muy bien el proceso pero ¿como puedo actualizar sin conocer los
campos de las tablas?, es decir, actualizar automáticamente todos los
campos que coinciden en las tablas origen y destino. Y también ¿como
puedo actualizar aquellos campos que son de un tipo determinado, por
ejemplo, "integer" y tranformar los datos en otro tipo según la tabla
destino, "boolean"?.

Gracias de antemano y saludos,
José Antonio Muñoz.




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