Problema con insert y order by en tabla temporal
Publicado por manuel (3 intervenciones) el 20/02/2008 16:59:13
Hola foristas
(parece q todos tienen problemas con sp en estos dias)
Veran dentro de un sp creo tablas temporales ,son como resumenes de varias tablas
esas tablas temporales las inserto en una tabla temporal final , el problema es con el order by , se produce un efecto bastante "raro"
la tabla queda asi
Cp_ident Documento Fecha
1 Doc1 01/01/2005
2 Doc2 01/02/2005
4 Doc3 01/02/2008
3 Doc4 01/02/2007
como ven el campo identity y el campo fecha van de la mano , ambos ordenados
pero fisicamente , los resultados estan desordenados
no se a q se deba , ya probe con crear un indice clustered al campo fecha ,
usando select into en una tabla temporal ,tambien declarando a Cp_ident
como llave primaria ,q se supone lo crea como clustered ,y por ultimo con variables tipo tabla
pero si hago estas operaciones en una tabla real si se insertan ordenadamente
Espero me puedan ayudar
Saludos
---------------------------------------------------------------------------------------------------
Create Table #Tfinal (
CIdent int identity (1,1) primary key,
Documento ,
fecha datetime)
-------------------------------------------
Insert Into #Tfinal
SELECT
Tx.Documento,
Tx.Fecha ,
FROM
(
Select Documento, Fecha from #t1
UNION
Select Documento, Fecha from #t2
.. .. )
Order by Tx.Fecha ,
(parece q todos tienen problemas con sp en estos dias)
Veran dentro de un sp creo tablas temporales ,son como resumenes de varias tablas
esas tablas temporales las inserto en una tabla temporal final , el problema es con el order by , se produce un efecto bastante "raro"
la tabla queda asi
Cp_ident Documento Fecha
1 Doc1 01/01/2005
2 Doc2 01/02/2005
4 Doc3 01/02/2008
3 Doc4 01/02/2007
como ven el campo identity y el campo fecha van de la mano , ambos ordenados
pero fisicamente , los resultados estan desordenados
no se a q se deba , ya probe con crear un indice clustered al campo fecha ,
usando select into en una tabla temporal ,tambien declarando a Cp_ident
como llave primaria ,q se supone lo crea como clustered ,y por ultimo con variables tipo tabla
pero si hago estas operaciones en una tabla real si se insertan ordenadamente
Espero me puedan ayudar
Saludos
---------------------------------------------------------------------------------------------------
Create Table #Tfinal (
CIdent int identity (1,1) primary key,
Documento ,
fecha datetime)
-------------------------------------------
Insert Into #Tfinal
SELECT
Tx.Documento,
Tx.Fecha ,
FROM
(
Select Documento, Fecha from #t1
UNION
Select Documento, Fecha from #t2
.. .. )
Order by Tx.Fecha ,
Valora esta pregunta


0