回答:
変更はありません。SQL Server 2017では、依然として同じあいまいなエラーメッセージが表示されますが、問題のある行/列を検出するメカニズムは提供されていません。
Connectが廃止されたとき、このConnectアイテムには1,600を超える票がありました。
マイクロソフトからの最新のコメントは次のとおりです。
最新の更新-それに取り組んでいる開発者は、完全な修正の作成に伴う課題を理解しています。挿入または更新のパフォーマンスに影響を与えないような方法で、完全なエラーメッセージを生成するために必要な列に関する情報を実際の変換関数に組み込むのは難しい場合があります。切り捨てられるデータのタイプと長さを記録するなど、短期的に安価なものを実装する場合があります。そのような修正がいつ公開されるかは、まだ時期尚早です。
私が提案できる最善の方法は、その項目に投票することです(そして、それについてコメントし、これがあなたに追加するビジネス価値を説明します)。
このMDSNブログ投稿に示されているように、私たちの祈りは答えられました。
SQL Server 2019では、コンテキスト情報が追加された新しいメッセージが導入されています。
これで、エラーはさらに意味のあるものになります。
メッセージ2628、レベル16、状態1、行14文字列またはバイナリデータは、テーブル 'DbName.SchemaName.TableName'、列 'Col'で切り捨てられます。切り捨てられた値: '...'。
また、幸いなことに、この変更は2017年と2016年の両方でバックポートされる予定です。
この新しいメッセージは、SQL Server 2017 CU12(および今後のSQL Server 2016 SP2 CU)にもバックポートされますが、デフォルトではありません。セッションまたはサーバーレベルで、メッセージID 8152を2628に置き換えるには、トレースフラグ460を有効にする必要があります。