2

CLRストアドプロシージャから返された結果セットをテーブル変数に挿入しています。結果セット内の一部の文字列の長さが一時テーブルで定義されたvarchar制限を超えているため、「System.Data.SqlClient.SqlException:文字列またはバイナリデータが切り捨てられます」というエラーが発生します。厄介なのは、切り捨てはまさに私が欲しいものです!
では、ストアドプロシージャの結果セットを挿入するときに、その結​​果セット(の文字列)を切り捨てるにはどうすればよいですか?
CLRSPのコードは変更したくありません。挿入されるデータの文字列は任意の長さです。

4

1 に答える 1

2

一時テーブルの列をデータを受け入れるのに十分な大きさにし、挿入後に切り捨てると思います。たとえば、

UPDATE #YourTempTable
    SET ColumnA = LEFT(ColumnA, 20),
        ColumnB = LEFT(ColumnB, 50)
于 2011-05-16T15:09:51.000 に答える