Nette\Database\Drivers\SqlsrvDriver::getIndexes PHP Method

getIndexes() public method

Returns metadata for all indexes in a table.
public getIndexes ( $table )
    public function getIndexes($table)
    {
        $indexes = [];
        foreach ($this->connection->query("\n\t\t\tSELECT\n\t\t\t\ti.name AS name,\n\t\t\t\tCASE WHEN i.is_unique = 1 OR i.is_unique_constraint = 1\n\t\t\t\t\tTHEN 1\n\t\t\t\t\tELSE 0\n\t\t\t\tEND AS [unique],\n\t\t\t\ti.is_primary_key AS [primary],\n\t\t\t\tc.name AS [column]\n\t\t\tFROM\n\t\t\t\tsys.indexes i\n\t\t\t\tJOIN sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id\n\t\t\t\tJOIN sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id\n\t\t\t\tJOIN sys.tables t ON i.object_id = t.object_id\n\t\t\tWHERE\n\t\t\t\tt.name = {$this->connection->quote($table)}\n\t\t\tORDER BY\n\t\t\t\ti.index_id,\n\t\t\t\tic.index_column_id\n\t\t") as $row) {
            $indexes[$row->name]['name'] = $row->name;
            $indexes[$row->name]['unique'] = (bool) $row->unique;
            $indexes[$row->name]['primary'] = (bool) $row->primary;
            $indexes[$row->name]['columns'][] = $row->column;
        }
        return array_values($indexes);
    }