in internal/database/sqlserver/sqlserver.go [153:175]
func (h sqlServerHandler) ListColumns(db *database.DB, tableName string) ([]database.ColumnInfo, error) {
query := fmt.Sprintf("SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '%s' AND TABLE_CATALOG = DB_NAME()", tableName)
rows, err := db.Query(query)
if err != nil {
return nil, fmt.Errorf("error querying columns for table %s: %w", tableName, err)
}
defer rows.Close()
var columns []database.ColumnInfo
for rows.Next() {
var colInfo database.ColumnInfo
if err := rows.Scan(&colInfo.Name, &colInfo.DataType); err != nil {
return nil, fmt.Errorf("error scanning column details: %w", err)
}
columns = append(columns, colInfo)
}
if err := rows.Err(); err != nil {
return nil, fmt.Errorf("error iterating column rows: %w", err)
}
return columns, nil
}