2016-09-06 22 views
-1

データが一部のテーブルに挿入されている間に、誤ったエラーメッセージが表示されます。バイナリデータ切り捨て(Msg 8152)の誤ったエラーメッセージ

フィールドのデータ型がVarchar(20)で、データが挿入されているが、最大 データ長を有し、問題があるのWHERE私は理解していない6.

です。私は

SET ANSI_WARNINGS OFF 

を追加することでこの問題を回避することができます。しかし、それは回避策ではない解決策になると思いますが:

Details

+0

sh.NameはおそらくnVARCHARですか? –

+0

[エラー、文字列またはバイナリデータの重複した部分が挿入しようとすると切り捨てられます](http://stackoverflow.com/questions/5591473/error-string-or-binary-data-would-be-truncated-when-試してみてください) –

+0

@MatthiasBurgerあなたが問題を理解していないなら、少なくともコメントしないでください。誰でも「フィールドの長さが挿入値より小さい」と言うことができます。 –

答えて

1

それはあなたが行く価値その後、MAXLENGTHプロパティ小さいあなたのコラムのSchemaNameようです挿入する。

データごとに列の長さを更新します。

ALTER TABLE Temp ALTER COLUMN SchemaName VARCHAR(XXXX) 
0

あなたのターゲットテーブルは、挿入しようとしているデータを保持するのに十分ではありません。あなたのターゲットサイズはvarchar(256)になると思われますが、varchar(10)を指定しました。この問題を解決するには、列のサイズを拡張するだけです。

を実行し、このDDL

Alter table temp alter column SchemaName varchar(256) 
+0

すでに言及したデータの長さが12であるとわからないので、 'varchar(256)'を使用しているポイントは –

0

このエラーは、あなたの列には、以下のサイズにそれらを持っているときに来ます。 列のサイズを更新します。

+0

です。盲目的に答える前にスクリーンショットを参照してください。 –

1

この問題の根本原因が見つかりました。 実際にはvarchar()sysnameデータ型の値を挿入しようとしていました。 sysnameのデータ型を格納するために適切な長さを指定する必要があります。

+0

ああ、 - 少しのヒント、sysnameは基本的にnvarchar(128)です –

関連する問題