Como hago para no usar un cursor en este caso.

26/06/2004 - 08:39 por Marcelo E Bruski | Informe spam
Hola amigos Listeros.

Tengo el siguiente codigo:

CREATE PROCEDURE Desa_Ppal AS
DECLARE

CREATE TABLE ##TEMP (OPERACION varchar(15),
IDPROPIEDAD varchar(8) primary key,
[Vigencia] [varchar] (15),
[FechaAlta] [varchar] (10),
[FechaModif] [varchar] (10),
[Nro] smallint,
[Antiguedad] int,
[Supcubierta] int ,
[SupDescubierta] int ,
[Zona] varchar(15),
[MONEDA] varchar (15),
[MONTO] INT,
[TIPOEDIFICIO] VARCHAR(15),
[ESTADO] VARCHAR(15)
)

set nocount on
EXEC DESA_ZONAS
exEC DESA_OPERACION
EXEC DESA_NRO
EXEC DESA_TIPO_MONEDAS
EXEC DESA_MONTO
EXEC DESA_TIPOEDIFICIO
EXEC DESA_ESTADO
SET NOCOUNT ON


INSERT INTO ##TEMP
SELECT ' ' as Operacion,
F_Cod_InmobiliariaArgenprop+RIGHT(IdPropiedad0,3) AS IDPROPIEDAD,
f_cod_vigencia,
cast(DATEPART(mm, T_Inmuebles.A_Fecha_ALTA )
as varchar(2))+ '/' +cast(DATEPART(dd,
T_Inmuebles.A_Fecha_ALTA )
as varchar(2))+ '/' +cast(DATEPART(yy,
T_Inmuebles.A_Fecha_Alta )
as varchar(4))AS FECHA_ALTA,
cast(DATEPART(mm, T_Inmuebles.A_Fecha_ultima_modificacion )
as varchar(2))+ '/' +cast(DATEPART(dd,
T_Inmuebles.A_Fecha_ultima_modificacion )
as varchar(2))+ '/' +cast(DATEPART(yy,
T_Inmuebles.A_Fecha_ultima_modificacion)
as varchar(4))AS FECHA_MODIFICA, ' ' as Nro, A_Antiguedad as
Antiguedad, A_Superficie_Cubierta,
A_Superficie_Descubierta, ' ' as Zona, ' ' AS MONEDA, ' ' AS MONTO, ' '
AS TIPOEDIFIC, ' ' AS ESTAD
FROM T_EQUIVALENCIAS_INMOBILIARIAS_ARGENPROP INNER JOIN
T_INMOBILIARIAS ON F_COD_INMOBILIARIA T_INMOBILIARIAS.P_COD_INMOBILIARIA
INNER JOIN T_SUCURSALES ON
T_INMOBILIARIAS.P_COD_INMOBILIARIA = T_SUCURSALES.P_COD_INMOBILIARIA
inner join t_sucursal_inmueble on t_sucursales.p_cod_inmobiliaria t_sucursal_inmueble.p_cod_inmobiliaria inner join
t_inmuebles on t_sucursal_inmueble.p_cod_inmueble t_inmuebles.p_cod_inmueble
inner join t_equivalencias_inmuebles_argenprop on
t_equivalencias_inmuebles_argenprop.f_cod_inmueble
= t_inmuebles.p_cod_inmueble
where (DATEPART(mm, T_Inmuebles.A_Fecha_ALTA)+
DATEPART(dd, T_Inmuebles.A_Fecha_ALTA)+
DATEPART(yy, T_Inmuebles.A_Fecha_ALTA)) datepart(mm,getdate())+
datepart(dd,getdate())+
datepart(yy,getdate())

UPDATE ##TEMP SET OPERACION = T_OPERACION FROM ##TEMP_ING_OPERACION
UPDATE ##TEMP SET ZONA =A_DESCRIPCION FROM ##TEMP_ING_ZONAS
UPDATE ##TEMP SET NRO = T_NRO FROM ##TEMP_ING_NRO
UPDATE ##TEMP SET MONEDA = T_MONEDAS FROM ##TEMP_ING_MONEDAS
UPDATE ##TEMP SET MONTO = T_MONTO FROM ##TEMP_ING_MONTO
UPDATE ##TEMP SET TIPOEDIFICIO = T_TIPO_EDIFICIO FROM
UPDATE ##TEMP SET ESTADO = T_ESTADO FROM ##TEMP_ING_ESTADO

DROP TABLE ##TEMP_ING_ZONAS
DROP TABLE ##TEMP_ING_OPERACION
DROP TABLE ##TEMP_ING_NRO
DROP TABLE ##TEMP_ING_MONEDAS
DROP TABLE ##TEMP_ING_MONTO
DROP TABLE ##TEMP_ING_TIPO_EDIFICIO
DROP TABLE ##TEMP_ING_ESTADO

Necesito en el update que me modifique todos los registros de la tabla. Con
el codigo que puse solo coloca el ultimo valor encontrado. Debiera de usar
un While pero no encuentro que condicion logica poner.

Alguien tiene alguna idea o sugerencia?? Saludos.

Preguntas similare

Leer las respuestas

#1 MAXI
26/06/2004 - 05:19 | Informe spam
Hola, francamente no entiendo bien que haces con el Update :( y porque
ademas haces tantos Updates y de donde salen todas esas tablas ##.

Me parece que si revisas bien la instruccion Update (Descripta) en tus BOL
veras unos ejemplos al final donde te daran una gran idea, o quizas si me
explicas a mi que queres hacer realmente quizas te pueda orientar mejor ;-)

Un saludo




Maxi

Buenos Aires - Argentina

Desarrollador .NET 3 Estrellas

Mail: Maxi_accotto[arroba]speedy.com.ar

MSN:


"Marcelo E Bruski" escribió en el mensaje
news:%
Hola amigos Listeros.

Tengo el siguiente codigo:

CREATE PROCEDURE Desa_Ppal AS
DECLARE

CREATE TABLE ##TEMP (OPERACION varchar(15),
IDPROPIEDAD varchar(8) primary key,
[Vigencia] [varchar] (15),
[FechaAlta] [varchar] (10),
[FechaModif] [varchar] (10),
[Nro] smallint,
[Antiguedad] int,
[Supcubierta] int ,
[SupDescubierta] int ,
[Zona] varchar(15),
[MONEDA] varchar (15),
[MONTO] INT,
[TIPOEDIFICIO] VARCHAR(15),
[ESTADO] VARCHAR(15)
)

set nocount on
EXEC DESA_ZONAS
exEC DESA_OPERACION
EXEC DESA_NRO
EXEC DESA_TIPO_MONEDAS
EXEC DESA_MONTO
EXEC DESA_TIPOEDIFICIO
EXEC DESA_ESTADO
SET NOCOUNT ON


INSERT INTO ##TEMP
SELECT ' ' as Operacion,
F_Cod_InmobiliariaArgenprop+RIGHT(IdPropiedad0,3) AS IDPROPIEDAD,
f_cod_vigencia,
cast(DATEPART(mm, T_Inmuebles.A_Fecha_ALTA )
as varchar(2))+ '/' +cast(DATEPART(dd,
T_Inmuebles.A_Fecha_ALTA )
as varchar(2))+ '/' +cast(DATEPART(yy,
T_Inmuebles.A_Fecha_Alta )
as varchar(4))AS FECHA_ALTA,
cast(DATEPART(mm, T_Inmuebles.A_Fecha_ultima_modificacion )
as varchar(2))+ '/' +cast(DATEPART(dd,
T_Inmuebles.A_Fecha_ultima_modificacion )
as varchar(2))+ '/' +cast(DATEPART(yy,
T_Inmuebles.A_Fecha_ultima_modificacion)
as varchar(4))AS FECHA_MODIFICA, ' ' as Nro, A_Antiguedad as
Antiguedad, A_Superficie_Cubierta,
A_Superficie_Descubierta, ' ' as Zona, ' ' AS MONEDA, ' ' AS MONTO, ' '
AS TIPOEDIFIC, ' ' AS ESTAD
FROM T_EQUIVALENCIAS_INMOBILIARIAS_ARGENPROP INNER JOIN
T_INMOBILIARIAS ON F_COD_INMOBILIARIA > T_INMOBILIARIAS.P_COD_INMOBILIARIA
INNER JOIN T_SUCURSALES ON
T_INMOBILIARIAS.P_COD_INMOBILIARIA = T_SUCURSALES.P_COD_INMOBILIARIA
inner join t_sucursal_inmueble on t_sucursales.p_cod_inmobiliaria > t_sucursal_inmueble.p_cod_inmobiliaria inner join
t_inmuebles on t_sucursal_inmueble.p_cod_inmueble > t_inmuebles.p_cod_inmueble
inner join t_equivalencias_inmuebles_argenprop on
t_equivalencias_inmuebles_argenprop.f_cod_inmueble
= t_inmuebles.p_cod_inmueble
where (DATEPART(mm, T_Inmuebles.A_Fecha_ALTA)+
DATEPART(dd, T_Inmuebles.A_Fecha_ALTA)+
DATEPART(yy, T_Inmuebles.A_Fecha_ALTA)) > datepart(mm,getdate())+
datepart(dd,getdate())+
datepart(yy,getdate())

UPDATE ##TEMP SET OPERACION = T_OPERACION FROM ##TEMP_ING_OPERACION
UPDATE ##TEMP SET ZONA =A_DESCRIPCION FROM ##TEMP_ING_ZONAS
UPDATE ##TEMP SET NRO = T_NRO FROM ##TEMP_ING_NRO
UPDATE ##TEMP SET MONEDA = T_MONEDAS FROM ##TEMP_ING_MONEDAS
UPDATE ##TEMP SET MONTO = T_MONTO FROM ##TEMP_ING_MONTO
UPDATE ##TEMP SET TIPOEDIFICIO = T_TIPO_EDIFICIO FROM
UPDATE ##TEMP SET ESTADO = T_ESTADO FROM ##TEMP_ING_ESTADO

DROP TABLE ##TEMP_ING_ZONAS
DROP TABLE ##TEMP_ING_OPERACION
DROP TABLE ##TEMP_ING_NRO
DROP TABLE ##TEMP_ING_MONEDAS
DROP TABLE ##TEMP_ING_MONTO
DROP TABLE ##TEMP_ING_TIPO_EDIFICIO
DROP TABLE ##TEMP_ING_ESTADO

Necesito en el update que me modifique todos los registros de la tabla.


Con
el codigo que puse solo coloca el ultimo valor encontrado. Debiera de usar
un While pero no encuentro que condicion logica poner.

Alguien tiene alguna idea o sugerencia?? Saludos.


Respuesta Responder a este mensaje
#2 Marcelo E Bruski
26/06/2004 - 16:44 | Informe spam
Tienes razón quizas no esta muy claro
El objetivo seria armar un archivo txt el cual se va conformando con
informacion de distintas tablas. Para ello me valgo de crear tablas
temporales y lo que hago es juntar los campos de cada una de ellas en una
ppal (#temp en este caso). El caso es que al hacer el select tengo varios
registros. Y cuando hago un update de cada campo me toma solamente el ultimo
valor, por lo tanto esos updates tendria que meterlos en un ciclo, para que
me ponga los distintos valores que va encontrando. Para usar un while
debiera de usar alguna sentencia logica pero no se me ocurre que poner.

Los exec son llamadas a otro store que lo que me hace es cargar las tablas
temporales globales.

Espero Maxi y demas gente que este claro. En caso contrario tratare de ser
mas claro.

Espero puedan ayudarme. Gracias y saludos.

"MAXI" escribió en el mensaje
news:eT$
Hola, francamente no entiendo bien que haces con el Update :( y porque
ademas haces tantos Updates y de donde salen todas esas tablas ##.

Me parece que si revisas bien la instruccion Update (Descripta) en tus BOL
veras unos ejemplos al final donde te daran una gran idea, o quizas si me
explicas a mi que queres hacer realmente quizas te pueda orientar mejor


;-)

Un saludo




Maxi

Buenos Aires - Argentina

Desarrollador .NET 3 Estrellas

Mail: Maxi_accotto[arroba]speedy.com.ar

MSN:


"Marcelo E Bruski" escribió en el mensaje
news:%
> Hola amigos Listeros.
>
> Tengo el siguiente codigo:
>
> CREATE PROCEDURE Desa_Ppal AS
> DECLARE
>
> CREATE TABLE ##TEMP (OPERACION varchar(15),
> IDPROPIEDAD varchar(8) primary key,
> [Vigencia] [varchar] (15),
> [FechaAlta] [varchar] (10),
> [FechaModif] [varchar] (10),
> [Nro] smallint,
> [Antiguedad] int,
> [Supcubierta] int ,
> [SupDescubierta] int ,
> [Zona] varchar(15),
> [MONEDA] varchar (15),
> [MONTO] INT,
> [TIPOEDIFICIO] VARCHAR(15),
> [ESTADO] VARCHAR(15)
> )
>
> set nocount on
> EXEC DESA_ZONAS
> exEC DESA_OPERACION
> EXEC DESA_NRO
> EXEC DESA_TIPO_MONEDAS
> EXEC DESA_MONTO
> EXEC DESA_TIPOEDIFICIO
> EXEC DESA_ESTADO
> SET NOCOUNT ON
>
>
> INSERT INTO ##TEMP
> SELECT ' ' as Operacion,
> F_Cod_InmobiliariaArgenprop+RIGHT(IdPropiedad0,3) AS IDPROPIEDAD,
> f_cod_vigencia,
> cast(DATEPART(mm, T_Inmuebles.A_Fecha_ALTA )
> as varchar(2))+ '/' +cast(DATEPART(dd,
> T_Inmuebles.A_Fecha_ALTA )
> as varchar(2))+ '/' +cast(DATEPART(yy,
> T_Inmuebles.A_Fecha_Alta )
> as varchar(4))AS FECHA_ALTA,
> cast(DATEPART(mm, T_Inmuebles.A_Fecha_ultima_modificacion )
> as varchar(2))+ '/' +cast(DATEPART(dd,
> T_Inmuebles.A_Fecha_ultima_modificacion )
> as varchar(2))+ '/' +cast(DATEPART(yy,
> T_Inmuebles.A_Fecha_ultima_modificacion)
> as varchar(4))AS FECHA_MODIFICA, ' ' as Nro, A_Antiguedad as
> Antiguedad, A_Superficie_Cubierta,
> A_Superficie_Descubierta, ' ' as Zona, ' ' AS MONEDA, ' ' AS MONTO, ' '
> AS TIPOEDIFIC, ' ' AS ESTAD
> FROM T_EQUIVALENCIAS_INMOBILIARIAS_ARGENPROP INNER JOIN
> T_INMOBILIARIAS ON F_COD_INMOBILIARIA > > T_INMOBILIARIAS.P_COD_INMOBILIARIA
> INNER JOIN T_SUCURSALES ON
> T_INMOBILIARIAS.P_COD_INMOBILIARIA = T_SUCURSALES.P_COD_INMOBILIARIA
> inner join t_sucursal_inmueble on t_sucursales.p_cod_inmobiliaria > > t_sucursal_inmueble.p_cod_inmobiliaria inner join
> t_inmuebles on t_sucursal_inmueble.p_cod_inmueble > > t_inmuebles.p_cod_inmueble
> inner join t_equivalencias_inmuebles_argenprop on
> t_equivalencias_inmuebles_argenprop.f_cod_inmueble
> = t_inmuebles.p_cod_inmueble
> where (DATEPART(mm, T_Inmuebles.A_Fecha_ALTA)+
> DATEPART(dd, T_Inmuebles.A_Fecha_ALTA)+
> DATEPART(yy, T_Inmuebles.A_Fecha_ALTA)) > > datepart(mm,getdate())+
> datepart(dd,getdate())+
> datepart(yy,getdate())
>
> UPDATE ##TEMP SET OPERACION = T_OPERACION FROM ##TEMP_ING_OPERACION
> UPDATE ##TEMP SET ZONA =A_DESCRIPCION FROM ##TEMP_ING_ZONAS
> UPDATE ##TEMP SET NRO = T_NRO FROM ##TEMP_ING_NRO
> UPDATE ##TEMP SET MONEDA = T_MONEDAS FROM ##TEMP_ING_MONEDAS
> UPDATE ##TEMP SET MONTO = T_MONTO FROM ##TEMP_ING_MONTO
> UPDATE ##TEMP SET TIPOEDIFICIO = T_TIPO_EDIFICIO FROM
> UPDATE ##TEMP SET ESTADO = T_ESTADO FROM ##TEMP_ING_ESTADO
>
> DROP TABLE ##TEMP_ING_ZONAS
> DROP TABLE ##TEMP_ING_OPERACION
> DROP TABLE ##TEMP_ING_NRO
> DROP TABLE ##TEMP_ING_MONEDAS
> DROP TABLE ##TEMP_ING_MONTO
> DROP TABLE ##TEMP_ING_TIPO_EDIFICIO
> DROP TABLE ##TEMP_ING_ESTADO
>
> Necesito en el update que me modifique todos los registros de la tabla.
Con
> el codigo que puse solo coloca el ultimo valor encontrado. Debiera de


usar
> un While pero no encuentro que condicion logica poner.
>
> Alguien tiene alguna idea o sugerencia?? Saludos.
>
>


Respuesta Responder a este mensaje
#3 MAXI
26/06/2004 - 18:32 | Informe spam
Hola, a ver!! si tenes una tabla Temp y queres hacer unos Update a sus
campos de otra tabla Temp? esto no me queda claro? porque no haces todo en
el Insert no?

De todas maneras que te reemplace el ultimo registro es porque tienes mal el
UPDATE, revisa bien en los BOL on line como es esta funcion!!

Pero igual revisa porque no haces todo cuando cargas, para que el Update?




Maxi

Buenos Aires - Argentina

Desarrollador .NET 3 Estrellas

Mail: Maxi_accotto[arroba]speedy.com.ar

MSN:


"Marcelo E Bruski" escribió en el mensaje
news:%
Tienes razón quizas no esta muy claro
El objetivo seria armar un archivo txt el cual se va conformando con
informacion de distintas tablas. Para ello me valgo de crear tablas
temporales y lo que hago es juntar los campos de cada una de ellas en una
ppal (#temp en este caso). El caso es que al hacer el select tengo varios
registros. Y cuando hago un update de cada campo me toma solamente el


ultimo
valor, por lo tanto esos updates tendria que meterlos en un ciclo, para


que
me ponga los distintos valores que va encontrando. Para usar un while
debiera de usar alguna sentencia logica pero no se me ocurre que poner.

Los exec son llamadas a otro store que lo que me hace es cargar las tablas
temporales globales.

Espero Maxi y demas gente que este claro. En caso contrario tratare de ser
mas claro.

Espero puedan ayudarme. Gracias y saludos.

"MAXI" escribió en el mensaje
news:eT$
> Hola, francamente no entiendo bien que haces con el Update :( y porque
> ademas haces tantos Updates y de donde salen todas esas tablas ##.
>
> Me parece que si revisas bien la instruccion Update (Descripta) en tus


BOL
> veras unos ejemplos al final donde te daran una gran idea, o quizas si


me
> explicas a mi que queres hacer realmente quizas te pueda orientar mejor
;-)
>
> Un saludo
>
>
>
>
> Maxi
>
> Buenos Aires - Argentina
>
> Desarrollador .NET 3 Estrellas
>
> Mail: Maxi_accotto[arroba]speedy.com.ar
>
> MSN:
>
>
> "Marcelo E Bruski" escribió en el


mensaje
> news:%
> > Hola amigos Listeros.
> >
> > Tengo el siguiente codigo:
> >
> > CREATE PROCEDURE Desa_Ppal AS
> > DECLARE
> >
> > CREATE TABLE ##TEMP (OPERACION varchar(15),
> > IDPROPIEDAD varchar(8) primary key,
> > [Vigencia] [varchar] (15),
> > [FechaAlta] [varchar] (10),
> > [FechaModif] [varchar] (10),
> > [Nro] smallint,
> > [Antiguedad] int,
> > [Supcubierta] int ,
> > [SupDescubierta] int ,
> > [Zona] varchar(15),
> > [MONEDA] varchar (15),
> > [MONTO] INT,
> > [TIPOEDIFICIO] VARCHAR(15),
> > [ESTADO] VARCHAR(15)
> > )
> >
> > set nocount on
> > EXEC DESA_ZONAS
> > exEC DESA_OPERACION
> > EXEC DESA_NRO
> > EXEC DESA_TIPO_MONEDAS
> > EXEC DESA_MONTO
> > EXEC DESA_TIPOEDIFICIO
> > EXEC DESA_ESTADO
> > SET NOCOUNT ON
> >
> >
> > INSERT INTO ##TEMP
> > SELECT ' ' as Operacion,
> > F_Cod_InmobiliariaArgenprop+RIGHT(IdPropiedad0,3) AS IDPROPIEDAD,
> > f_cod_vigencia,
> > cast(DATEPART(mm, T_Inmuebles.A_Fecha_ALTA )
> > as varchar(2))+ '/' +cast(DATEPART(dd,
> > T_Inmuebles.A_Fecha_ALTA )
> > as varchar(2))+ '/' +cast(DATEPART(yy,
> > T_Inmuebles.A_Fecha_Alta )
> > as varchar(4))AS FECHA_ALTA,
> > cast(DATEPART(mm, T_Inmuebles.A_Fecha_ultima_modificacion )
> > as varchar(2))+ '/' +cast(DATEPART(dd,
> > T_Inmuebles.A_Fecha_ultima_modificacion )
> > as varchar(2))+ '/' +cast(DATEPART(yy,
> > T_Inmuebles.A_Fecha_ultima_modificacion)
> > as varchar(4))AS FECHA_MODIFICA, ' ' as Nro, A_Antiguedad as
> > Antiguedad, A_Superficie_Cubierta,
> > A_Superficie_Descubierta, ' ' as Zona, ' ' AS MONEDA, ' ' AS MONTO, '


'
> > AS TIPOEDIFIC, ' ' AS ESTAD
> > FROM T_EQUIVALENCIAS_INMOBILIARIAS_ARGENPROP INNER JOIN
> > T_INMOBILIARIAS ON F_COD_INMOBILIARIA > > > T_INMOBILIARIAS.P_COD_INMOBILIARIA
> > INNER JOIN T_SUCURSALES ON
> > T_INMOBILIARIAS.P_COD_INMOBILIARIA = T_SUCURSALES.P_COD_INMOBILIARIA
> > inner join t_sucursal_inmueble on t_sucursales.p_cod_inmobiliaria > > > t_sucursal_inmueble.p_cod_inmobiliaria inner join
> > t_inmuebles on t_sucursal_inmueble.p_cod_inmueble > > > t_inmuebles.p_cod_inmueble
> > inner join t_equivalencias_inmuebles_argenprop on
> > t_equivalencias_inmuebles_argenprop.f_cod_inmueble
> > = t_inmuebles.p_cod_inmueble
> > where (DATEPART(mm, T_Inmuebles.A_Fecha_ALTA)+
> > DATEPART(dd, T_Inmuebles.A_Fecha_ALTA)+
> > DATEPART(yy, T_Inmuebles.A_Fecha_ALTA)) > > > datepart(mm,getdate())+
> > datepart(dd,getdate())+
> > datepart(yy,getdate())
> >
> > UPDATE ##TEMP SET OPERACION = T_OPERACION FROM ##TEMP_ING_OPERACION
> > UPDATE ##TEMP SET ZONA =A_DESCRIPCION FROM ##TEMP_ING_ZONAS
> > UPDATE ##TEMP SET NRO = T_NRO FROM ##TEMP_ING_NRO
> > UPDATE ##TEMP SET MONEDA = T_MONEDAS FROM ##TEMP_ING_MONEDAS
> > UPDATE ##TEMP SET MONTO = T_MONTO FROM ##TEMP_ING_MONTO
> > UPDATE ##TEMP SET TIPOEDIFICIO = T_TIPO_EDIFICIO FROM
> > UPDATE ##TEMP SET ESTADO = T_ESTADO FROM ##TEMP_ING_ESTADO
> >
> > DROP TABLE ##TEMP_ING_ZONAS
> > DROP TABLE ##TEMP_ING_OPERACION
> > DROP TABLE ##TEMP_ING_NRO
> > DROP TABLE ##TEMP_ING_MONEDAS
> > DROP TABLE ##TEMP_ING_MONTO
> > DROP TABLE ##TEMP_ING_TIPO_EDIFICIO
> > DROP TABLE ##TEMP_ING_ESTADO
> >
> > Necesito en el update que me modifique todos los registros de la


tabla.
> Con
> > el codigo que puse solo coloca el ultimo valor encontrado. Debiera de
usar
> > un While pero no encuentro que condicion logica poner.
> >
> > Alguien tiene alguna idea o sugerencia?? Saludos.
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Liliana Sorrentino
28/06/2004 - 19:40 | Informe spam
Marcelo,
Para poder ayudarte sería bárbaro que nos mandaras la estructura de tus
tablas, algunos datos de las mismas y el resultado que necesitás, como para
copiar y pegar así nos facilitás la cosa. A mí no me queda claro lo que
necesitás.
Saludos...
Liliana.

"Marcelo E Bruski" escribió en el mensaje
news:#
Tienes razón quizas no esta muy claro
El objetivo seria armar un archivo txt el cual se va conformando con
informacion de distintas tablas. Para ello me valgo de crear tablas
temporales y lo que hago es juntar los campos de cada una de ellas en una
ppal (#temp en este caso). El caso es que al hacer el select tengo varios
registros. Y cuando hago un update de cada campo me toma solamente el


ultimo
valor, por lo tanto esos updates tendria que meterlos en un ciclo, para


que
me ponga los distintos valores que va encontrando. Para usar un while
debiera de usar alguna sentencia logica pero no se me ocurre que poner.

Los exec son llamadas a otro store que lo que me hace es cargar las tablas
temporales globales.

Espero Maxi y demas gente que este claro. En caso contrario tratare de ser
mas claro.

Espero puedan ayudarme. Gracias y saludos.

"MAXI" escribió en el mensaje
news:eT$
> Hola, francamente no entiendo bien que haces con el Update :( y porque
> ademas haces tantos Updates y de donde salen todas esas tablas ##.
>
> Me parece que si revisas bien la instruccion Update (Descripta) en tus


BOL
> veras unos ejemplos al final donde te daran una gran idea, o quizas si


me
> explicas a mi que queres hacer realmente quizas te pueda orientar mejor
;-)
>
> Un saludo
>
>
>
>
> Maxi
>
> Buenos Aires - Argentina
>
> Desarrollador .NET 3 Estrellas
>
> Mail: Maxi_accotto[arroba]speedy.com.ar
>
> MSN:
>
>
> "Marcelo E Bruski" escribió en el


mensaje
> news:%
> > Hola amigos Listeros.
> >
> > Tengo el siguiente codigo:
> >
> > CREATE PROCEDURE Desa_Ppal AS
> > DECLARE
> >
> > CREATE TABLE ##TEMP (OPERACION varchar(15),
> > IDPROPIEDAD varchar(8) primary key,
> > [Vigencia] [varchar] (15),
> > [FechaAlta] [varchar] (10),
> > [FechaModif] [varchar] (10),
> > [Nro] smallint,
> > [Antiguedad] int,
> > [Supcubierta] int ,
> > [SupDescubierta] int ,
> > [Zona] varchar(15),
> > [MONEDA] varchar (15),
> > [MONTO] INT,
> > [TIPOEDIFICIO] VARCHAR(15),
> > [ESTADO] VARCHAR(15)
> > )
> >
> > set nocount on
> > EXEC DESA_ZONAS
> > exEC DESA_OPERACION
> > EXEC DESA_NRO
> > EXEC DESA_TIPO_MONEDAS
> > EXEC DESA_MONTO
> > EXEC DESA_TIPOEDIFICIO
> > EXEC DESA_ESTADO
> > SET NOCOUNT ON
> >
> >
> > INSERT INTO ##TEMP
> > SELECT ' ' as Operacion,
> > F_Cod_InmobiliariaArgenprop+RIGHT(IdPropiedad0,3) AS IDPROPIEDAD,
> > f_cod_vigencia,
> > cast(DATEPART(mm, T_Inmuebles.A_Fecha_ALTA )
> > as varchar(2))+ '/' +cast(DATEPART(dd,
> > T_Inmuebles.A_Fecha_ALTA )
> > as varchar(2))+ '/' +cast(DATEPART(yy,
> > T_Inmuebles.A_Fecha_Alta )
> > as varchar(4))AS FECHA_ALTA,
> > cast(DATEPART(mm, T_Inmuebles.A_Fecha_ultima_modificacion )
> > as varchar(2))+ '/' +cast(DATEPART(dd,
> > T_Inmuebles.A_Fecha_ultima_modificacion )
> > as varchar(2))+ '/' +cast(DATEPART(yy,
> > T_Inmuebles.A_Fecha_ultima_modificacion)
> > as varchar(4))AS FECHA_MODIFICA, ' ' as Nro, A_Antiguedad as
> > Antiguedad, A_Superficie_Cubierta,
> > A_Superficie_Descubierta, ' ' as Zona, ' ' AS MONEDA, ' ' AS MONTO, '


'
> > AS TIPOEDIFIC, ' ' AS ESTAD
> > FROM T_EQUIVALENCIAS_INMOBILIARIAS_ARGENPROP INNER JOIN
> > T_INMOBILIARIAS ON F_COD_INMOBILIARIA > > > T_INMOBILIARIAS.P_COD_INMOBILIARIA
> > INNER JOIN T_SUCURSALES ON
> > T_INMOBILIARIAS.P_COD_INMOBILIARIA = T_SUCURSALES.P_COD_INMOBILIARIA
> > inner join t_sucursal_inmueble on t_sucursales.p_cod_inmobiliaria > > > t_sucursal_inmueble.p_cod_inmobiliaria inner join
> > t_inmuebles on t_sucursal_inmueble.p_cod_inmueble > > > t_inmuebles.p_cod_inmueble
> > inner join t_equivalencias_inmuebles_argenprop on
> > t_equivalencias_inmuebles_argenprop.f_cod_inmueble
> > = t_inmuebles.p_cod_inmueble
> > where (DATEPART(mm, T_Inmuebles.A_Fecha_ALTA)+
> > DATEPART(dd, T_Inmuebles.A_Fecha_ALTA)+
> > DATEPART(yy, T_Inmuebles.A_Fecha_ALTA)) > > > datepart(mm,getdate())+
> > datepart(dd,getdate())+
> > datepart(yy,getdate())
> >
> > UPDATE ##TEMP SET OPERACION = T_OPERACION FROM ##TEMP_ING_OPERACION
> > UPDATE ##TEMP SET ZONA =A_DESCRIPCION FROM ##TEMP_ING_ZONAS
> > UPDATE ##TEMP SET NRO = T_NRO FROM ##TEMP_ING_NRO
> > UPDATE ##TEMP SET MONEDA = T_MONEDAS FROM ##TEMP_ING_MONEDAS
> > UPDATE ##TEMP SET MONTO = T_MONTO FROM ##TEMP_ING_MONTO
> > UPDATE ##TEMP SET TIPOEDIFICIO = T_TIPO_EDIFICIO FROM
> > UPDATE ##TEMP SET ESTADO = T_ESTADO FROM ##TEMP_ING_ESTADO
> >
> > DROP TABLE ##TEMP_ING_ZONAS
> > DROP TABLE ##TEMP_ING_OPERACION
> > DROP TABLE ##TEMP_ING_NRO
> > DROP TABLE ##TEMP_ING_MONEDAS
> > DROP TABLE ##TEMP_ING_MONTO
> > DROP TABLE ##TEMP_ING_TIPO_EDIFICIO
> > DROP TABLE ##TEMP_ING_ESTADO
> >
> > Necesito en el update que me modifique todos los registros de la


tabla.
> Con
> > el codigo que puse solo coloca el ultimo valor encontrado. Debiera de
usar
> > un While pero no encuentro que condicion logica poner.
> >
> > Alguien tiene alguna idea o sugerencia?? Saludos.
> >
> >
>
>


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