Is there an efficient way to see the cause for "String or binary data would be truncated"?
There has been no change. SQL Server 2017 still offers up the same vague error message and does not provide any mechanism to discover the offending row/column.

This Connect item had over 1,600 votes when Connect was retired:


Please fix the "String or binary data would be truncated" message to give the column name


The latest comment there, from Microsoft, was this:


  Latest update - the developer working on it understands the challenges involved in creating a full fix. It may be tricky to plumb the information about columns needed to generate a full error message down to the actual conversion function in such a way that won't impact insert or update performance. We may implement something cheap in the short term such as logging the type and length of the data being truncated. It's still too early to know when such a fix would reach a publicly visible release.


The best I can suggest is to vote for that item (and comment on it, describing the business value this would add for you).