エラーは正しいです。暗黙的に(または明示的に)VARCHAR(MAX)をキャストすることはできません。 sql_variantへ 。 Nameの場合 VARCHAR(MAX)です 互換性のあるタイプ(VARCHAR(8000)など)に変換する必要があります これをパラメーターとしてsys.fn_sqlvarbasetostr()に渡すため
msdnを参照してください:
sys.fn_sqlvarbasetostr()の機能が必要な場合 データを失うことなく列をダウンコンバートすることはできません。その関数の独自のバージョンをロールする必要があるかもしれません。 CLRは良い賭けでしょう。