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

Preguntas similare

Leer las respuestas

#11 CHAR72
11/05/2006 - 00:04 | Informe spam
Otra cosa, andara dentro de una tarea DTS o deberé ponerslo en un sp?


"Norman" escribió en el mensaje
news:
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






Respuesta Responder a este mensaje
#12 Maxi
11/05/2006 - 14:43 | Informe spam
jaja, algo asi ;), como ustedes no espeficican la version entonces.


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"CHAR72" <char72[nos pa m]@gmail.com> escribió en el mensaje
news:
Maxi=SQL2005, se nota tu entusiasmo con el SQL2005, vi que ultimamente
contestas todas las preguntas con respuestas para esta plataforma, te
internaron en Redmond para mostrarte todas las nuevas ventajas ????? !!!!
Lamentablemente mi caso es que tengo SQL2000 todavia

Saludos y gracias compañero argentino.

Carlos

"Maxi" escribió en el mensaje
news:%
Hola, te paso un ejemplo de como borrar registros en sql2005 de a partes

CREATE TABLE ##PEDIDOS (ID INT IDENTITY, VALOR INT)
GO


DECLARE @N INT
SET @N = 1
WHILE @N <= 500
BEGIN
INSERT INTO ##PEDIDOS (VALOR) VALUES (@N+50)
SET @N = @N + 1
END


WHILE (SELECT COUNT(*) FROM ##PEDIDOS) > 0
BEGIN
DELETE TOP(50) FROM ##PEDIDOS
END



Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"CHAR72" <char72[nos pa m]@gmail.com> escribió en el mensaje
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










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