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

getColumns() public method

Returns metadata for all columns in a table.
public getColumns ( $table )
    public function getColumns($table)
    {
        $columns = [];
        foreach ($this->connection->query("\n\t\t\tSELECT\n\t\t\t\tc.name AS name,\n\t\t\t\to.name AS [table],\n\t\t\t\tUPPER(t.name) AS nativetype,\n\t\t\t\tNULL AS size,\n\t\t\t\t0 AS unsigned,\n\t\t\t\tc.is_nullable AS nullable,\n\t\t\t\tOBJECT_DEFINITION(c.default_object_id) AS [default],\n\t\t\t\tc.is_identity AS autoincrement,\n\t\t\t\tCASE WHEN i.index_id IS NULL\n\t\t\t\t\tTHEN 0\n\t\t\t\t\tELSE 1\n\t\t\t\tEND AS [primary]\n\t\t\tFROM\n\t\t\t\tsys.columns c\n\t\t\t\tJOIN sys.objects o ON c.object_id = o.object_id\n\t\t\t\tLEFT JOIN sys.types t ON c.user_type_id = t.user_type_id\n\t\t\t\tLEFT JOIN sys.key_constraints k ON o.object_id = k.parent_object_id AND k.type = 'PK'\n\t\t\t\tLEFT JOIN sys.index_columns i ON k.parent_object_id = i.object_id AND i.index_id = k.unique_index_id AND i.column_id = c.column_id\n\t\t\tWHERE\n\t\t\t\to.type IN ('U', 'V')\n\t\t\t\tAND o.name = {$this->connection->quote($table)}\n\t\t") as $row) {
            $row = (array) $row;
            $row['vendor'] = $row;
            $row['unsigned'] = (bool) $row['unsigned'];
            $row['nullable'] = (bool) $row['nullable'];
            $row['autoincrement'] = (bool) $row['autoincrement'];
            $row['primary'] = (bool) $row['primary'];
            $columns[] = $row;
        }
        return $columns;
    }