2009-07-11 3 views
0

데이터베이스에서 모든 인덱스를 제거하는 방법을 아는 사람이 있습니까?SQL Server 2000 인덱스 삭제

+1

모든 인덱스를 제거 하시겠습니까? –

+1

@Mitch : 나는 다른 개발자들을 귀찮게하기 위해 dev 인스턴스에서 그것을 할 것이다. – Sung

답변

3

이 쿼리를 사용하면 당신이 다음 실행할 수 DROP 문 목록을 생성합니다 :

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

꽤 빠르며 모든 색인을 삭제해야합니다 :-)

Marc

PS : 아, 죄송합니다. SQL Server 2005 이상에서만 작동합니다. SQL Server 2000의 경우 "sysindexes"보기를 대신 사용해야합니다 ... 내 문장을 적절히 업데이트했습니다.

+0

+1 항상 OBJECT_XXX 함수를 잊어 버렸기 때문에 +1보다 좋음 ...이 테이블 이름에 –

+0

이 작동하지 않을 것입니다. 다른 스크립트가 있습니까? – KuldipMCA

+0

죄송합니다. 문제가 해결되었습니다. 내가 sql2000에 대한 스크립트를 원한다 그래서 내가 대답을 가지고 sql2005에서 몇 가지 diff 구문이 있습니다. – KuldipMCA

1

sysindexes table을 쿼리하는 일부 sql을 생성하십시오.

의 라인을 따라 어떤 것을 :

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 

다음은 결과를 실행 ....