Table.HasClusteredIndex Property


Gets the Boolean property value that specifies whether the table has a clustered index.

Namespace:   Microsoft.SqlServer.Management.Smo
Assembly:  Microsoft.SqlServer.Smo (in Microsoft.SqlServer.Smo.dll)

[SfcPropertyAttribute(SfcPropertyFlags.None | SfcPropertyFlags.Standalone | SfcPropertyFlags.SqlAzureDatabase)]
public bool HasClusteredIndex { get; }

Property Value

Type: System.Boolean

A Boolean value that specifies whether there is a clustered index defined on the table.

If True, there is a clustered index defined on the table. Otherwise, False (default).

The B-tree leaf level of a clustered index is the rows of data.

The following code example shows how to check each table in the AdventureWorks2012 database to see if it has a clustered index.


Server srv = new Server("(local)");
Database db = srv.Databases["AdventureWorks2012"];

Foreach (Table tb in db.Tables) 
   Console.WriteLine("The " + tb.Name + " table has a clustered index:" + tb.HasClusteredIndex.ToString());


$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$db = $srv.Databases.Item("AdventureWorks2012")

Foreach ($tb in $db.Tables) 
   Write-Host "The" $tb.Name "table has a clustered index:" $tb.HasClusteredIndex
Return to top