Cómo borro todas las filas menos las 100 primeras???

07/01/2004 - 10:04 por c | Informe spam
Como borro todas las filas de una tabla MENOS las 100
primeras (ó 100 cualquiera mejor todavía).
El objetivo es quedarme con muchos menos registros para
pasar la Base de Datos a un servidor que tiene muy poco
espacio para hacer unas pruebas.

Preguntas similare

Leer las respuestas

#1 Miguel Egea
07/01/2004 - 10:14 | Informe spam
delete from tabla where id not in (select top 100 id from tabla order by
newid())


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"c" escribió en el mensaje
news:07bb01c3d4fd$4cf6e850$
Como borro todas las filas de una tabla MENOS las 100
primeras (ó 100 cualquiera mejor todavía).
El objetivo es quedarme con muchos menos registros para
pasar la Base de Datos a un servidor que tiene muy poco
espacio para hacer unas pruebas.
Respuesta Responder a este mensaje
#2 c
07/01/2004 - 10:24 | Informe spam
Gracias Miguel!
Pero que es newid() en la parte que pones order by newid
()???
Y cuando pones id, en select top 100 id. Este "id" es un
alias no????


delete from tabla where id not in (select top 100 id


from tabla order by
newid())


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"c" escribió en el


mensaje
news:07bb01c3d4fd$4cf6e850$
Como borro todas las filas de una tabla MENOS las 100
primeras (ó 100 cualquiera mejor todavía).
El objetivo es quedarme con muchos menos registros para
pasar la Base de Datos a un servidor que tiene muy poco
espacio para hacer unas pruebas.


.

Respuesta Responder a este mensaje
#3 José Raúl Fenollar Martínez
07/01/2004 - 10:34 | Informe spam
Eso es una forma de ordenar aleatoriamente la tabla, ya que la función
NewId() devuelve un id distinto cada vez que se le llama, pero que no es ni
temporal ni consecutivo, con lo que la ordenacxión final va a ser distinta
cada vez, y de esa ordenación, te va borrar las 100 primeras filas que
devuelva.


"c" escribió en el mensaje
news:07e401c3d500$1d2583e0$
Gracias Miguel!
Pero que es newid() en la parte que pones order by newid
()???
Y cuando pones id, en select top 100 id. Este "id" es un
alias no????


delete from tabla where id not in (select top 100 id


from tabla order by
newid())


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"c" escribió en el


mensaje
news:07bb01c3d4fd$4cf6e850$
Como borro todas las filas de una tabla MENOS las 100
primeras (ó 100 cualquiera mejor todavía).
El objetivo es quedarme con muchos menos registros para
pasar la Base de Datos a un servidor que tiene muy poco
espacio para hacer unas pruebas.


.

Respuesta Responder a este mensaje
#4 Carlos Sacristan
07/01/2004 - 10:37 | Informe spam
Con tu permiso, Miguel:

- newId() es una función que genera un valor GUID. En este caso es para
ordenar aleatoriamente los registros de una consulta.
- cuando Miguel pone id supongo que se referirá a la clave primaria de
tu tabla

En definitiva, lo que hace esa sentencia es, primeramente, recoger la
clave primaria de los 100 primeros registros extraídos aleatoriamente, para
posteriormente borrar todos aquellos que no coincidan con ese conjunto.



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"c" escribió en el mensaje
news:07e401c3d500$1d2583e0$
Gracias Miguel!
Pero que es newid() en la parte que pones order by newid
()???
Y cuando pones id, en select top 100 id. Este "id" es un
alias no????


delete from tabla where id not in (select top 100 id


from tabla order by
newid())


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"c" escribió en el


mensaje
news:07bb01c3d4fd$4cf6e850$
Como borro todas las filas de una tabla MENOS las 100
primeras (ó 100 cualquiera mejor todavía).
El objetivo es quedarme con muchos menos registros para
pasar la Base de Datos a un servidor que tiene muy poco
espacio para hacer unas pruebas.


.

Respuesta Responder a este mensaje
#5 Miguel Egea
07/01/2004 - 10:37 | Informe spam
id es lo que debes sustituir por tu clave primaria, newid() es una función
que devuelve un guid aleatorio, al ordernar por esta función obtienes esa
'aleatoreidad'..

Saludos
Miguel Egea
"c" escribió en el mensaje
news:07e401c3d500$1d2583e0$
Gracias Miguel!
Pero que es newid() en la parte que pones order by newid
()???
Y cuando pones id, en select top 100 id. Este "id" es un
alias no????


delete from tabla where id not in (select top 100 id


from tabla order by
newid())


Saludos

Miguel Egea
Microsoft SQL-SERVER MVP
Brigada Anti-Cursores
"c" escribió en el


mensaje
news:07bb01c3d4fd$4cf6e850$
Como borro todas las filas de una tabla MENOS las 100
primeras (ó 100 cualquiera mejor todavía).
El objetivo es quedarme con muchos menos registros para
pasar la Base de Datos a un servidor que tiene muy poco
espacio para hacer unas pruebas.


.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida