script inicialización de datos

16/01/2009 - 13:33 por Alhambra Eidos Desarrollo | Informe spam
Hola,

estoy con sql server 2005 express, y quieero crear un script inicialización
de datos para varias aplicaciones

ID_APLICACION = 1, 2, 3... n

Para la aplicación 1 tengo estos insert
insert Campos_Busqueda (
ID_APLICACION,ID_CAMPO,DESCRIPCION,ID_TIPO,OBLIGATORIO,LONGITUD,ID_EntidadNegocio,EsInterno,EsIdentificador ) select 1,1,'NumeroPrestamo',1,0,10,1,0,0
insert Campos_Busqueda (
ID_APLICACION,ID_CAMPO,DESCRIPCION,ID_TIPO,OBLIGATORIO,LONGITUD,ID_EntidadNegocio,EsInterno,EsIdentificador ) select 1,2,'DNI',1,0,9,1,0,0
insert Campos_Busqueda (
ID_APLICACION,ID_CAMPO,DESCRIPCION,ID_TIPO,OBLIGATORIO,LONGITUD,ID_EntidadNegocio,EsInterno,EsIdentificador ) select 1,3,'Intervinientes',1,1,10,1,0,0

Cómo podría generar los insert de forma parametrizada por ID_APLICACION a
partir de una lista de valores ID_APLICACION (1,2,3, ..n) o a partir de una
consulta a la tabla Aplicaciones (select ID_APLICACION from aplicaciones)

Gracias de antemano y saludos.


http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.com/churrosoft
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft

Preguntas similare

Leer las respuestas

#1 Rubén Garrigós
16/01/2009 - 14:20 | Informe spam
Utiliza una estructura INSERT ... SELECT como la que estás usando ahora pero
utiliza una consulta que te devuelva todos los datos que desees insertar de
una vez a partir de la tabla aplicaciones que comentas (SELECT
ID_APLICACION,... from aplicaciones/aplicacionescampos). No tienes porque
hacerlo fila a fila como estás haciendolo ahora.

Un saludo,

Rubén Garrigós
Solid Quality Mentors


"Alhambra Eidos Desarrollo"
wrote in message
news:
Hola,

estoy con sql server 2005 express, y quieero crear un script
inicialización
de datos para varias aplicaciones

ID_APLICACION = 1, 2, 3... n

Para la aplicación 1 tengo estos insert
insert Campos_Busqueda (
ID_APLICACION,ID_CAMPO,DESCRIPCION,ID_TIPO,OBLIGATORIO,LONGITUD,ID_EntidadNegocio,EsInterno,EsIdentificador
) select 1,1,'NumeroPrestamo',1,0,10,1,0,0
insert Campos_Busqueda (
ID_APLICACION,ID_CAMPO,DESCRIPCION,ID_TIPO,OBLIGATORIO,LONGITUD,ID_EntidadNegocio,EsInterno,EsIdentificador
) select 1,2,'DNI',1,0,9,1,0,0
insert Campos_Busqueda (
ID_APLICACION,ID_CAMPO,DESCRIPCION,ID_TIPO,OBLIGATORIO,LONGITUD,ID_EntidadNegocio,EsInterno,EsIdentificador
) select 1,3,'Intervinientes',1,1,10,1,0,0

Cómo podría generar los insert de forma parametrizada por ID_APLICACION a
partir de una lista de valores ID_APLICACION (1,2,3, ..n) o a partir de
una
consulta a la tabla Aplicaciones (select ID_APLICACION from aplicaciones)

Gracias de antemano y saludos.


http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.com/churrosoft
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft

Respuesta Responder a este mensaje
#2 Alhambra Eidos Desarrollo
19/01/2009 - 13:08 | Informe spam
Hola,

creo que necesitaría un cursor o algo así para recorrer las aplicaciones
disponibles y generar los inserts (por cada aplicación se generan varios
Inserts en la tabla Campos_Busqueda).

El resto de campos de los INSERT siempre tendrán el mismo valor, sólo cambia
el Idaplicacion

ID_APLICACION = 1

insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 1,1,'NumeroPrestamo'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 1,2,'DNI'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 1,3,'Intervinientes'



ID_APLICACION = 2

insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 2,1,'NumeroPrestamo'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 2,2,'DNI'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 2,3,'Intervinientes'

y así con N aplicaciones.

Si tuviera un cursor, tendría una variable así @ID_APLICACION y ´tendría
que hacer algo así, por cada aplicación (sería en cada iteración)

Mientras existan aplicaciones
Obtener valor para la aplicacion y lo metemos en variable @ID_APLICACION

insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select @ID_APLICACION,1,'NumeroPrestamo'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select @ID_APLICACION,2,'DNI'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select @ID_APLICACION,3,'Intervinientes'

Fin Mientras

Algún ejemplo con código ? nunca he manejado cursores

Gracias.
Respuesta Responder a este mensaje
#3 Rubén Garrigós
19/01/2009 - 15:59 | Informe spam
Lo que intentaba explicarte en el anterior mensaje es que la idea es que
realices en una única inserción todas los datos que necesites y no que
utilices ningún cursor. Si almacenas en una tabla los campos y en otra las
aplicaciones puedes hacer un cruce de una tabla con la otra (cross join) y
obtener todas las combinaciones. Es decir, por cada id aplicación tendrías
sus id_campos y descripciones listos para insertar.

Imagina que tienes ya una tabla aplicacion con la columna id_aplicacion y
una tabla campos con las columnas id_campo y descripción. Pare rellenar
campos_busqueda solo tendrías que hacer esto, sin cursores ni
complicaciones:

INSERT campos_busqueda(id_aplicación,id_campo,descripcion)
SELECT id_aplicacion,id_campo,descripcion FROM
aplicaciones,campos


"Alhambra Eidos Desarrollo"
wrote in message
news:

Hola,

creo que necesitaría un cursor o algo así para recorrer las aplicaciones
disponibles y generar los inserts (por cada aplicación se generan varios
Inserts en la tabla Campos_Busqueda).

El resto de campos de los INSERT siempre tendrán el mismo valor, sólo
cambia
el Idaplicacion

ID_APLICACION = 1

insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 1,1,'NumeroPrestamo'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 1,2,'DNI'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 1,3,'Intervinientes'



ID_APLICACION = 2

insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 2,1,'NumeroPrestamo'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 2,2,'DNI'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select 2,3,'Intervinientes'

y así con N aplicaciones.

Si tuviera un cursor, tendría una variable así @ID_APLICACION y ´tendría
que hacer algo así, por cada aplicación (sería en cada iteración)

Mientras existan aplicaciones
Obtener valor para la aplicacion y lo metemos en variable @ID_APLICACION

insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select @ID_APLICACION,1,'NumeroPrestamo'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select @ID_APLICACION,2,'DNI'
insert Campos_Busqueda (ID_APLICACION,ID_CAMPO,DESCRIPCION)
select @ID_APLICACION,3,'Intervinientes'

Fin Mientras

Algún ejemplo con código ? nunca he manejado cursores

Gracias.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida