Showing posts with label specific. Show all posts
Showing posts with label specific. Show all posts

Friday, March 23, 2012

How to test if Index exists?

How can I test if a table already has a specific index present?
Id normally test for an object with: if object_ID('My Object') is null then...
What technique works with an index? Or can you use the object_Id function, how do you reference the index?
Many thanks.You can check if a table has an index at all, not a specific index, unless you want to test for an existance of the name:

if exists (select 1 from dbo.sysindexes where object_name(id)='your_table' and indid between 2 and 254) print 'There is at least 1 non-clustered index'
else print 'No non-clustered indexes found'|||IF INDEXPROPERTY ( OBJECT_ID('your_table') , 'your_table_index' , 'IndexID' ) IS NULL

If you know the name the above should work; I have not tested it.

Tim S|||sp_helpindex tableName

OR

IF EXISTS (SELECT indid
FROM sysindexes
WHERE id = OBJECT_ID('tableName')
AND name = 'indexName') THEN

....sql

How to test existance for an index

How do I test for the existance of an index with in a specific table?
Thanks,
Bryanselect *
from dbo.sysindexes
where id = object_id(N'dbo.MyTable', 'U') and name = N'MyIndex'
"BDB" wrote:

> How do I test for the existance of an index with in a specific table?
> Thanks,
> Bryan
>
>|||The following stored proc will give list of indexes for given table.
EXECUTE sp_MShelpindex <table_name> , NULL, 1|||Thank you.
"KH" <KH@.discussions.microsoft.com> wrote in message
news:286BE372-C9BB-4CD0-8B52-6A3BBADEC429@.microsoft.com...
> select *
> from dbo.sysindexes
> where id = object_id(N'dbo.MyTable', 'U') and name = N'MyIndex'
>
> "BDB" wrote:
>