8152: String or binary data would be truncated(文字列またはバイナリデータが切り詰められる)
SQL Server意味
列の定義長より長いデータを書き込もうとした。SQL Server はデータ損失を防ぐため文を停止する (2628 は列/値を報告する同じエラーの新しい版)。
原因
例えば VARCHAR(10) 列への 15 文字の書き込み、ソースより狭いターゲット列、データ型/長さの不一致、または ETL/転送でのフィールドサイズ不足。
対処方法
データに合わせて列を広げる (ALTER TABLE ... ALTER COLUMN) か、データを短くする。SQL Server 2019 以降では、あふれたテーブル/列/値を示すエラー 2628 を使う。それ以前のバージョンでは LEN() で列を 1 つずつ確認して該当行を特定する。転送ではソースとターゲットのスキーマ長を揃える。
同じデータベースの他の項目
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ...(一意インデックスに重複キー行を挿入できない)
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint(FOREIGN KEY / CHECK 制約との競合)
- 18456Login failed for user(ユーザーのログイン失敗)
- 2628String or binary data would be truncated in table, column ...; truncated value(文字列またはバイナリデータが切り詰められる (テーブル/列/値を表示))
- 1222Lock request time out period exceeded(ロック要求のタイムアウト期間を超過)
- 9002The transaction log for database is full due to ...(トランザクションログが満杯)
- 1105Could not allocate space for object in database because the filegroup is full(ファイルグループが満杯のため領域を割り当てられない)