2016-07-01 80 views
1

String or binary data would be truncated. The statement has been terminated.文字列またはバイナリデータは切り捨てられます。ステートメントは終了されました。 System.Data.SqlClient.SqlException(0x80131904)

System.Data.SqlClient.SqlException (0x80131904): String or binary data would be truncated

+2

テーブルに挿入する値は、カラム定義 – Jens

+0

より長くなります。SQLコードとターゲットテーブルのDDLを質問に追加してください。 –

+0

0x80131904エラーは通常、char、nchar、varchar、またはnvarcharの列に特定の制限が設定され、特定のアプリケーションからより多くの文字が挿入されると発生します。まず、テーブルの構造を確認してください。 –

答えて

2

この例外は、C#(モデル)がSQL SERVERデータベーステーブルで定義されたサイズよりも小さい列のデータレコードを保存しようとしたときにスローされます。

このエラーを修正するには、SQL Serverスクリプトを使用してSQL Serverデータベースのテーブルの列を変更するだけです。

表の列のサイズを大きくするだけで動作します。 PROD/TEST環境にアプリケーションを再デプロイする必要はありません。

1

以下のこのサンプルを参照してください。

CREATE TABLE MyTable(Num INT, Column1 VARCHAR(3)) 

INSERT INTO MyTable VALUES (1, 'test') 

column1のサイズは3ですが、指定された値の長さは4ですので、エラーが発生します。あなたはそれにサイズのつまりを以下の文字列値を渡す必要があり

、3つの文字を以下のように:

はエラーを修正するには。。

INSERT INTO MyTable VALUES (1, 'tes') 

あなたは、このエラーに

を抑制したい場合は、私たちがOFFとANSI_WARNINGSを使用した場合、エラーが抑制され、何でもできることになる

オフ
SET ansi_warnings OFF 

にANSI_WARNINGSパラメータ以下に設定使用することができます列にはめ込まれ、挿入され、残りは切り捨てられる。

INSERT INTO MyTable VALUES (1, 'test') 

文字列 'tes'はテーブルに格納され、エラーは返されません。

関連する問題