15

私のテーブル:

log_id                 bigint
old_value                  xml
new_value                  xml
module                 varchar(50)
reference_id           bigint
[transaction]          varchar(100)
transaction_status         varchar(10)
stack_trace                ntext
modified_on                datetime
modified_by                bigint

クエリの挿入:

INSERT INTO [dbo].[audit_log]
           ([old_value],[new_value],[module],[reference_id],[transaction]
           ,[transaction_status],[stack_trace],[modified_on],[modified_by])
     VALUES
            ('asdf','asdf','Subscriber',4,'_transaction',
            '_transaction_status','_stack_trace',getdate(),555)

エラー :

Msg 8152, Level 16, State 14, Line 1
String or binary data would be truncated.
The statement has been terminated.

何故ですか ???

4

3 に答える 3

59

特定の列に格納できるよりも多くのデータを書き込もうとしています。挿入しようとしているデータのサイズを、各フィールドのサイズと照合してください。

この場合、transaction_statusはvarchar(10)であり、19文字を格納しようとしています。

于 2012-06-01T02:24:16.327 に答える
3

このタイプのエラーは通常、この場合のように、データベース テーブルで指定したよりも多くの文字または値を入力する必要がある場合に発生し transaction_status varchar(10) ます
_transaction_status 。それが、このコードでこのタイプのエラーに直面した理由です..

于 2013-07-22T09:20:31.607 に答える