Eliminar todos los índices

31/08/2004 - 09:18 por anonymous | Informe spam
Buenas

Alguien sabe si existe algún stored procedure que elimine todos los índices
de una base de datos SQL-Server?

Gracias

Preguntas similare

Leer las respuestas

#1 Salvador Ramos
31/08/2004 - 11:49 | Informe spam
Hola:

Si te refieres a un stored procedure que ya venga incluido, no lo hay.
Pero te lo puedes construir tu, o quizás en www.sqlservercentral.com tengas
alguno ya hecho, o que haga tareas similares. Entra la sección de scritps y
encontrarás cosas muy interesantes; también puedes utilizar su buscador y
buscar frases como "drop indexes" o similares, seguro que encuentras varios
scripts sobre el tema.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"anonymous" escribió en el mensaje
news:
Buenas

Alguien sabe si existe algún stored procedure que elimine todos los


índices
de una base de datos SQL-Server?

Gracias


Respuesta Responder a este mensaje
#2 anonymous
31/08/2004 - 12:01 | Informe spam
Gracias

"Salvador Ramos" escribió en el
mensaje news:ukVO0$
Hola:

Si te refieres a un stored procedure que ya venga incluido, no lo hay.
Pero te lo puedes construir tu, o quizás en www.sqlservercentral.com


tengas
alguno ya hecho, o que haga tareas similares. Entra la sección de scritps


y
encontrarás cosas muy interesantes; también puedes utilizar su buscador y
buscar frases como "drop indexes" o similares, seguro que encuentras


varios
scripts sobre el tema.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"anonymous" escribió en el mensaje
news:
> Buenas
>
> Alguien sabe si existe algún stored procedure que elimine todos los
índices
> de una base de datos SQL-Server?
>
> Gracias
>
>


Respuesta Responder a este mensaje
#3 Adrian D. Garcia
31/08/2004 - 20:37 | Informe spam
Aqui tienes un script que dropea todos los indices de una tabla siempre y
cuando:
a) El indice fue creado por una restriccion de PRIMARY KEY
b) El indice fue creado por una restriccion de UNIQUE

DECLARE @Tabla VARCHAR(255)
SET @Tabla = 'aquivaelnombredelatabla'

DECLARE IndicesCursor CURSOR
READ_ONLY
FOR
SELECT name FROM SYSINDEXES
WHERE id = Object_ID(@Tabla ) AND indid <> 0 AND indid <> 1 AND indid <
250 and
name NOT IN (SELECT OBJECT_NAME(constid) AS NOMBRE
FROM sysconstraints
WHERE id = Object_ID(@Tabla ) AND (status & 0xF) = 2)

DECLARE @Indice varchar(255)
DECLARE @Comando varchar(1000)

OPEN IndicesCursor
FETCH NEXT FROM IndicesCursor INTO @Indice
WHILE (@@fetch_status <> -1)
BEGIN
SET @Comando = 'DROP INDEX ''' + @Tabla + '.' + @Indice + ''''
EXEC( @Comando )
FETCH NEXT FROM IndicesCursor INTO @Indice
END
CLOSE IndicesCursor
DEALLOCATE IndicesCursor
GO

Este script puede convertirse muy facilmente en un procedimiento almacenado.

IMPORTANTE: Este script tiene una serie de malas practicas como por ejemplo
el uso de cursores y el uso de la instruccion EXEC. No tomen este script
como base para realizar operaciones que se pueden resolver de otra forma.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"anonymous" wrote in message
news:
Buenas

Alguien sabe si existe algún stored procedure que elimine todos los


índices
de una base de datos SQL-Server?

Gracias


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