Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Insertar Registros + Order By

Estas en el tema de Insertar Registros + Order By en el foro de SQL Server en Foros del Web. Buenas tardes a toda la gente del foro mi duda/problema es el siguiente Se pueden insertar registros en una tabla y de paso ordenandolos ? ...
  #1 (permalink)  
Antiguo 12/12/2007, 13:55
 
Fecha de Ingreso: noviembre-2007
Mensajes: 7
Antigüedad: 17 años, 2 meses
Puntos: 0
Pregunta Insertar Registros + Order By

Buenas tardes a toda la gente del foro
mi duda/problema es el siguiente
Se pueden insertar registros en una tabla y de paso ordenandolos ?
Se Supone q este scrip deberia funcionar bien
"Inserta en la tabla NewTabla_Ordenada desde la tabla Tab_Desordenada
pero ordenandolos "
pero cuando reviso los registro de la tabla NewTabla_Ordenada , no estan ordenados correctamente
Ejm

2004-01-22 00:00:00.000
2004-01-24 00:00:00.000
2007-12-03 00:00:00.000
2007-12-04 00:00:00.000
---mas registros
2007-11-03 00:00:00.000
2007-10-30 00:00:00.000
2004-06-28 00:00:00.000
2004-06-28 00:00:00.000
2004-06-30 00:00:00.000

No se a q se deba

o talvez hay otra forma de hacer esto

Cualquier ayuda q me puedan dar sera biebenida
Saludos desde Lima


Código PHP:
Insert into NewTabla_Ordenada

select  
from
Tab_Desordenada

Order by 
 DATEPART 
year FEmision 
,
DATEPART month FEmision 
,
DATEPART day FEmision 

Última edición por jfrank; 12/12/2007 a las 14:06 Razón: Mas datos
  #2 (permalink)  
Antiguo 12/12/2007, 14:05
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 24 años, 2 meses
Puntos: 3
Re: Insertar Registros + Order By

Hola,creo que Sql server no ordena datos en una tabla a menos que definas un indice Clustered.

Crea un indice clustered para la tabla por el campo o campos que quieras usar para ordenar.

saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #3 (permalink)  
Antiguo 12/12/2007, 14:21
Avatar de royrojas  
Fecha de Ingreso: diciembre-2004
Mensajes: 458
Antigüedad: 20 años
Puntos: 3
Re: Insertar Registros + Order By

Sir Matrix esta en lo correcto, no es solo agregar los registros de forma ordenada si no tambien como tienes los indices o llaves de la tabla.

Como tienes la estructura de la tabla?
Cual es tu llave primaria? La llave primaria es cluster asi que por ahi podriamos comenzar.

Otra cosa, ahi veo que hacer un order by por cada una de las partes de la fecha, pero eso no es necesario hacerlo asi, eso funciona con solo le indiques Order by FEmision y si quieres le indicas ASC o DESC, pero no es necesario partirla, ya por ser fecha SQL sabe como debe ordenar.

Entonces si quieres tener los datos ordenados por la fecha, la fecha deberia ser parte de la llave primaria, o le deberias crear un indice.
__________________
roy rojas
Programación en Español: DotNetcr.com
  #4 (permalink)  
Antiguo 12/12/2007, 14:35
 
Fecha de Ingreso: noviembre-2007
Mensajes: 7
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Insertar Registros + Order By

Gracias por su ayuda ,
para empezar la tabla no tiene clave primaria , por ahora
bueno probe con clustered , y parece q ahora si funciona ,esta insertando los datos correctamente

(copie el codigo generado por el administrador corporativo)
Una consulta mas , este escrip carga varias variables
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
SET ARITHABORT ON
...
cuales son sus valores por defecto para ,caragarlos y la configuracion vuelva a estar
como estaba antes de ejecutarlos

Saludos




BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
CREATE CLUSTERED INDEX IX_TNew ON dbo.NewTabla_Ordenada
(
FEmision
) ON [PRIMARY]
GO
COMMIT
  #5 (permalink)  
Antiguo 17/12/2007, 14:13
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Re: Insertar Registros + Order By

Compañeros, sinceramente no le veo caso a que se preocupen porque en el INSERTE se agreguen los registros de forma "ordenada", ya que al obtener estos, se cuenta con la instruccion ORDER BY.

En fin, es una forma de ver las cosas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:26.