Параметры запроса используются только для передачи столбца значения , а не столбца имена .В случаях, когда вам нужно динамически включать имена объектов, вам нужно использовать Dynamic SQL (подстановка строк), например, что-то вроде этого:
schema_name = 'dbo'
table_name = 'Donor'
sql = """\
SELECT QUOTENAME(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA=? AND TABLE_NAME=?
ORDER BY ORDINAL_POSITION
"""
crsr.execute(sql, schema_name, table_name)
columns = ', '.join([x[0] for x in crsr.fetchall()])
sql = f"SELECT * FROM [{schema_name}].[{table_name}] ORDER BY {columns}"
print(sql)
# SELECT * FROM [dbo].[Donor] ORDER BY [id], [last_name], [first_name]