Sobre borrado de muuuchos registros

10/05/2006 - 16:23 por CHAR72 | Informe spam
Hola tengo un DTS y necesito borrar mas de 300 mil registros segun un
criterio, la cuestion es que cuando lo intento tengo el siguiente error:

(Microsoft OLE DB Provider for SQL Server (80040e14): The query has been
canceled because the estimated cost of this query (72) exceeds the
configured threshold of 60. Contact the system administrator.)

No es mi servidor y supongo que al dueño no le apetece que se haga, pero la
pregunta es: como los borro? no puedo hacer delete top 1000 y borrarlos de
cada vez, tiene un campo ID pero hacer un SELECT TOP 1000 @MAX_ID=MAX(ID) y
luego un DELETE FROM ... WHERE ID<@MAX_ID eso en un recorrido de un
cursor...

Pero no hay otra forma?

Saludos

Carlos
 

Leer las respuestas

#1 Norman
10/05/2006 - 16:48 | Informe spam
SET ROWCOUNT 1000 -- o la cantidad de records que quieras borrar en cada
pase
delete from dbo.TuTabla
where ...

while @@rowcount > 0
delete from dbo.TuTabla
where ...

SET ROWCOUNT 0



Saludos,


Norman




"CHAR72" <char72[nos pa m]@gmail.com> wrote in message
news:
Hola tengo un DTS y necesito borrar mas de 300 mil registros segun un
criterio, la cuestion es que cuando lo intento tengo el siguiente error:

(Microsoft OLE DB Provider for SQL Server (80040e14): The query has been
canceled because the estimated cost of this query (72) exceeds the
configured threshold of 60. Contact the system administrator.)

No es mi servidor y supongo que al dueño no le apetece que se haga, pero
la pregunta es: como los borro? no puedo hacer delete top 1000 y borrarlos
de cada vez, tiene un campo ID pero hacer un SELECT TOP 1000
@MAX_ID=MAX(ID) y luego un DELETE FROM ... WHERE ID<@MAX_ID eso en un
recorrido de un cursor...

Pero no hay otra forma?

Saludos

Carlos


Preguntas similares