You can use COLLATE database_default
in the temp table definition using the syntax you describe, and that will make each column collation-compatible with your database.
You have to set it explicitly per column. There is no table-level default collation. There is a database-level default collation, but for tempdb
this is always equal to the default collation of the model
database, which by default is the server collation.
If you set the collation on the table column, you can still override it in a query, as you have already experienced.