SQL Server 2000 отбрасывает индексы - PullRequest
0 голосов
/ 11 июля 2009

Кто-нибудь может знать, как удалить все индексы из базы данных?

Ответы [ 2 ]

3 голосов
/ 11 июля 2009

Используя этот запрос, вы создадите список операторов DROP, которые вы затем сможете выполнить:

SELECT 
    'DROP INDEX ' + ix.name + ' ON ' + OBJECT_NAME(ID)
FROM 
    sysindexes ix
WHERE   
    ix.Name IS NOT null

Это должно быть довольно быстро и уберечь все индексы: -)

Марк

PS: ах, извините, я только что заметил, что это будет работать только в SQL Server 2005 и выше. Для SQL Server 2000 вам нужно вместо этого использовать представление «sysindexes» ... Я обновил свое утверждение соответственно

1 голос
/ 11 июля 2009

Создайте несколько sql запросов к таблице sysindexes .

что-то вроде:

select 'drop index ' + i.name + '  on  ' + o.name
from sysindexes i 
inner join sysobjects o  on  i.id = o.id
where  o.name <> i.name

Выполнить результаты ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...