Ahi lo pude hacer con el SET @variable = @@Identity
Antes habia probado con IDENT_CURRENT pero no funcionaba..
gracias!
El día 28/01/08, Ana Lucas <[EMAIL PROTECTED]> escribió:
>
> Me parece que el tema no pasa por ahí...
>
> Imagino que estás grabando el id con un campo identity, y de allí tu
> problema.
>
> Lo que tenés que hacer es "capturar" el valor del Id que se insertó en una
> variable, escribiendo
>
> SET @variable = @@Identity
>
> inmediatamente después del INSERT, y después usarla en los otros insert.
>
> También existe la función IDENT_CURRENT*('**table_name**')* que te
> devuelve el último valor de identidad generado para esa tabla. Nunca la
> usé...
>
> Otra opción es deshabilitar los campos identity de las tablas destino, y
> usar los valores de id existentes en la tabla origen, así te quedan
> exactamente iguales.
> Esto se hace con SET IDENTITY_INSERT ON tutabla ON
>
> Saludos,
>
> Ana.
>
> ------------------------------
> *De:* [email protected] [mailto:[EMAIL PROTECTED] *En nombre de *Leandro
> Halfon
> *Enviado el:* Lunes 28 de Enero de 2008 15:57
> *Para:* [email protected]
> *Asunto:* [puntonet] [OT] SQL cursores anidados.
>
> y como se hace eso ? jeje
> gracias!!
>
> 2008/1/28, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
> >
> > deshabilitá los constraints
> >
> > ----- Original Message -----
> > *From:* Leandro Halfon <[EMAIL PROTECTED]>
> > *To:* [email protected]
> > *Sent:* Monday, January 28, 2008 3:28 PM
> > *Subject:* [puntonet] [OT] SQL cursores anidados.
> >
> > Lista.. a ver si algun grosso en sql me puede ayudar
> > tengo que duplicar totalmente los datos de un bd..
> > pero como algunas tablas estan relacionados..tengo que usar cursores...
> >
> > hice un script para duplicar los datos de 2 tablas..
> >
> > el scripts es el siguiente:
> >
> > /*declaramos las variables para tabla menu*/
> > declare @idmenu as int
> > declare @tipomenu as int
> > declare @nombre as varchar(50)
> > declare @descripcion as varchar(300)
> > declare @orden as int
> > declare @idmenupadre as int
> > declare @publicado as bit
> > declare @imagen as varchar(80)
> > declare @alineacion as int
> > /*declaramos las variables para tabla menu_idiomas */
> > declare @texto as varchar(150)
> > declare @eslinkexterno as bit
> > declare @urlexterno as varchar(250)
> > declare @estargetself as bit
> > declare @estargetblank as bit
> > declare @espopup as bit
> > declare @width as int
> > declare @heigth as int
> >
> > /*declaramos los cursores. El select debe contener sólo los campos a
> > utilizar.*/
> > declare MENU cursor for
> > select IdMenu,TipoMenu,
> > Nombre,Descripcion,OrdenMenu,IdMenuPadre,Publicado,Imagen,Alineacion
> > from ocms_menues where idsitio=5 and tipomenu=3
> >
> > open MENU
> > /*Avanzamos un registro y cargamos en las variables los valores
> > encontrados en el primer registro*/
> > fetch next from MENU into
> > @idmenu,@tipomenu,@nombre,@descripcion,@orden,@idmenupadre,@publicado,@imagen,@alineacion
> > while @@fetch_status = 0
> > begin
> > /*Insertamos el nuevo menu*/
> > insert into ocms_menues
> > values(@tipomenu,@nombre,@descripcion,@orden,@idmenupadre,@publicado,14,@imagen,@alineacion)
> > necesito el id que inserte para el insert que hay mas
> > abajo...
> > /*Leemos el menu_idioma*/
> > declare MENU_IDIOMAS cursor for
> > select
> > texto,eslinkexterno,publicado,urlexterno,estargetself,estargetblank,espopup,popupwidth,popupheigth
> > from ocms_menues_idiomas where [EMAIL PROTECTED]
> > open MENU_IDIOMAS
> > fetch next from MENU_IDIOMAS into
> > @texto,@eslinkexterno,@publicado,@urlexterno,@estargetself,@estargetblank,@espopup,@width,@heigth
> > while @@fetch_status = 0
> > begin
> > /*Insertamos el nuevo menu_idioma*/
> > insert into ocms_menues_idiomas
> > values(@texto,@eslinkexterno,@publicado,@urlexterno,@estargetself,@estargetblank,@espopup,@width,@heigth)
> > /*Avanzamos otro registro de la tabla menu_idioma*/
> >
> > fetch next from MENU_IDIOMAS into
> > @tipomenu,@nombre,@descripcion,@orden,@idmenupadre,@publicado,@imagen,@alineacion
> > end
> > close MENU_IDIOMAS
> > deallocate MENU_IDIOMAS
> >
> >
> > /*Avanzamos otro registro de la tabla menu */
> > fetch next from MENU into
> > @tipomenu,@nombre,@descripcion,@orden,@idmenupadre,@publicado,@imagen,@alineacion
> > end
> > /*cerramos el cursor*/
> > close MENU
> > deallocate MENU
> >
> > ahora bien.. en el cursor de MENU_IDIOMAS necesito insertar en valor que
> > hice en insert del nuevo menu.. tienen idea de como hago ?
> >
> > gracias!!!
> >
> > Leandro
> >
> >
>