Configuracion de Servidor

16/02/2005 - 14:37 por Rodin | Informe spam
Buenos días,

Cordial saludo,

Serian tan amables, de colaborame con el siguiente problema:
Con un procedimiento almacenado se inserta unos registros a una tabla, se
insertan en un orden especifico (order by), pero cuando los consulto
directamente en la tabla, aparecen en desorden. Cuando realizo esta misma
actividad en otro servidor funciona correctamente, es decir, los datos se
muestran ordenados, la pregunta es:
Acaso existe alguna configuración en algun objeto de la base de datos o en
el mismo servidor para mostrar los registros ?,
esto mismo ocurre cuando consulto la tabla por medio de un reporte de
crystal report 8.5, y no respeta el order by y solo los muestra como esta en
el origen, en este caso la tabla.

Mil gracias por su atención,

Att: Rodin Martínez

Preguntas similare

Leer las respuestas

#1 Maxi
16/02/2005 - 15:01 | Informe spam
Hola, a ver, debes saber primero que los datos no queran ordenados de
forma directa, o sea el orden de un select puede depender de varios motivos,
por ej: si hay algun indice cluster quizas lo este ordenando por el.

Si quieres asegurar el orden de registros en una consulta siempre es
aconsejable usar Order By, es lo unico que te garantizara el 100% de
confiabilidad :-)


Salu2
Maxi


"Rodin" escribió en el mensaje
news:
Buenos días,

Cordial saludo,

Serian tan amables, de colaborame con el siguiente problema:
Con un procedimiento almacenado se inserta unos registros a una tabla, se
insertan en un orden especifico (order by), pero cuando los consulto
directamente en la tabla, aparecen en desorden. Cuando realizo esta misma
actividad en otro servidor funciona correctamente, es decir, los datos se
muestran ordenados, la pregunta es:
Acaso existe alguna configuración en algun objeto de la base de datos o en
el mismo servidor para mostrar los registros ?,
esto mismo ocurre cuando consulto la tabla por medio de un reporte de
crystal report 8.5, y no respeta el order by y solo los muestra como esta
en
el origen, en este caso la tabla.

Mil gracias por su atención,

Att: Rodin Martínez

Respuesta Responder a este mensaje
#2 Gustavo Larriera [MVP]
16/02/2005 - 15:04 | Informe spam
Para consultar debes usar ORDER BY, el concepto de "orden físico de
registros por defaecto" no es aplicable en SQL Server.

Si bien es posible algunas formas tramposas de hacerlo (por ejemplo
usando índices clustered), desde el punto de vista teórico debe usarse
SELECT-ORDERBY siempre que se desea un orden específico.

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and
confers no rights.



"Rodin" wrote in message
news::
Buenos dà­as,

Cordial saludo,

Serian tan amables, de colaborame con el siguiente problema:
Con un procedimiento almacenado se inserta unos registros a una tabla, se

insertan en un orden especifico (order by), pero cuando los consulto
directamente en la tabla, aparecen en desorden. Cuando realizo esta misma

actividad en otro servidor funciona correctamente, es decir, los datos se

muestran ordenados, la pregunta es:
Acaso existe alguna configuración en algun objeto de la base de datos o
en
el mismo servidor para mostrar los registros ?,
esto mismo ocurre cuando consulto la tabla por medio de un reporte de
crystal report 8.5, y no respeta el order by y solo los muestra como esta
en
el origen, en este caso la tabla.

Mil gracias por su atención,

Att: Rodin Martà­nez
Respuesta Responder a este mensaje
#3 Tinoco
16/02/2005 - 15:05 | Informe spam
Hola Rodin,

Segun lo que entiendo de tu pregunta, el orden en que se insertan los datos
en una tabla no es el mismo que el orden en que se consultan. Normalmente SQL
Server realiza un ordenamiento predeterminado por columnas de la primera a la
ultima, si se necesita otro orden se debe especificar en el Select final de
la consulta la jerarquia de ordenamiento [Order by].

Otro motivo por el cual puede estar fallando la consulta es por el Collate,
ya que este especifica el parametro de ordenamiento.

Hermilson Tinoco
Colombia

"Rodin" wrote:

Buenos días,

Cordial saludo,

Serian tan amables, de colaborame con el siguiente problema:
Con un procedimiento almacenado se inserta unos registros a una tabla, se
insertan en un orden especifico (order by), pero cuando los consulto
directamente en la tabla, aparecen en desorden. Cuando realizo esta misma
actividad en otro servidor funciona correctamente, es decir, los datos se
muestran ordenados, la pregunta es:
Acaso existe alguna configuración en algun objeto de la base de datos o en
el mismo servidor para mostrar los registros ?,
esto mismo ocurre cuando consulto la tabla por medio de un reporte de
crystal report 8.5, y no respeta el order by y solo los muestra como esta en
el origen, en este caso la tabla.

Mil gracias por su atención,

Att: Rodin Martínez

Respuesta Responder a este mensaje
#4 Alejandro Mesa
16/02/2005 - 15:09 | Informe spam
Rodin,

No existe ninguna configuracion para esto. SQL Server no garantiza que el
resultado de una consulta este ordenado si no se usa la clausula ORDER BY en
la sentencia SELECT, al menos que la tabla tenga un indice CLUSTERED, en este
caso el resultado estara ordenado en base a las columnas envueltas en dicho
indice y al orden escogido.

Ejemplo:

use northwind
go

create table t (
colA int not null identity(1, 1),
colB int,
constraint pk_t primary key clustered (colA desc))
go

select * from sysindexes
where [id] = object_id('dbo.t') and indid = 1
go

insert into t (colB)
select
*
from
(
select 5
union all
select 10
union all
select 1
union all
select -1
) as t(colA)
order by
colA
go

select * from t
go

alter table t drop constraint pk_t
go

alter table t drop column colA
go

select * from sysindexes
where [id] = object_id('dbo.t') and indid = 1
go

select * from t
go

drop table t
go

Fijate que el insert lo hago usando ORDER BY (deberia ser -1, 1, 5, 10). Sin
embargo, cuando hacemos el primer select, el resultado es (10, 5, 1, -1) y es
debido al indice CLUSTERED que creamos por colA y order descendente. Pero mas
intrigante es cuando eliminamos el constraint y la columna involucrada en el
indice clustered (al borrar el constrinat, tambien se elimina el indice),
cuando seleccionamos nuevamente desde la tabla, el order tampoco es -1, 1, 5,
10.


AMB

"Rodin" wrote:

Buenos días,

Cordial saludo,

Serian tan amables, de colaborame con el siguiente problema:
Con un procedimiento almacenado se inserta unos registros a una tabla, se
insertan en un orden especifico (order by), pero cuando los consulto
directamente en la tabla, aparecen en desorden. Cuando realizo esta misma
actividad en otro servidor funciona correctamente, es decir, los datos se
muestran ordenados, la pregunta es:
Acaso existe alguna configuración en algun objeto de la base de datos o en
el mismo servidor para mostrar los registros ?,
esto mismo ocurre cuando consulto la tabla por medio de un reporte de
crystal report 8.5, y no respeta el order by y solo los muestra como esta en
el origen, en este caso la tabla.

Mil gracias por su atención,

Att: Rodin Martínez

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