Depending on how you are using your temp tables, you could run into a data truncation issue.
This example is a bit contrived, but it illustrates my point.
Example:
- Your user table column is varchar(50).
- Your temp table column is varchar(255).
- You have a record with 45 characters in that column in your user table.
- In your procedure, you concatenate ' - for the win' to the end of that column, prior to merging that temp table into your user table.
The temp table would gladly accept the new varchar value with a length of 59. However, your user table could not. Depending on how you handle this in your procedure, this could result in truncation or an error.
Unless you document and account for these issues, your procedure could perform in an unexpected manner.
Personally, I do not think there is an answer to this question that is correct 100% of the time. It really depends on how you are using those temp tables.
Hope this helps
MAX()
in the mix.