首页 > 解决方案 > 如何显示错误号的指定表列:22001/8152 SQL Server 字符串或二进制数据将被截断?

问题描述

我得到错误号:22001/8152 SQL [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]String or binary data would be truncated. ,这意味着我在源表中的一列大于我的目标列。不幸的是,该消息没有显示哪一列是谁,我使用了很多表列结构,它大约是 161 列。我认为一一检查我的参数值和列大小并不是一件好事。有最快的方法吗?这是我的插入查询看起来像

INSERT INTO "my_db"."dbo"."my_table" ("Indeks_Keterpaduan", "NA", "admin_pembiayaan", "adopt_b2", "aktivitas_id", "aktivitas_nama", "assessment", "catatan", "dba_", "dlokasi", "dukungan_kawasan", "ikk_id", "ikk_nama", "ikp_id", "ikp_nama", "isu_strategis_id", "isu_strategis_nama", "jaringan_jalan", "jenis_arahan", "jenis_kegiatan", "jenis_kontrakID", "jenis_kontrakNama", "jenis_kotrakKode", "jenis_sub_aktivitas", "kabkot", "kawasan_nama", "kecamatan_id", "kegiatan_id", "kegiatan_nama", "ket_lokasi", "keterangan", "kewenangan", "kode_ssp", "kode_sspn", "kpk", "kws_kode", "outcome_id", "outcome_nama", "output_id", "output_nama", "param_a", "param_b", "param_c", "param_d", "param_e", "param_total", "phln", "politik_anggaran", "prioritas", "program_id", "program_nama", "provinsi_id", "rc_DED", "rc_DEDalokasi", "rc_DEDsatuan", "rc_DEDvol", "rc_Dokling", "rc_Doklingalokasi", "rc_Doklingsatuan", "rc_Doklingvol", "rc_FS", "rc_FSalokasi", "rc_FSsatuan", "rc_FSvol", "rc_dokptanah", "rc_kesesuaian_rtrw", "rc_konstruksi", "rc_konstruksialokasi", "rc_konstruksisatuan", "rc_konstruksivol", "rc_lahan", "rc_lahanalokasi", "rc_lahansatuan", "rc_lahanvol", "rc_masterplan", "rc_pnp1", "rc_pnp2", "rc_proposalpnp", "rc_rdtr", "rc_rdtralokasi", "rc_rdtrsatuan", "rc_rdtrvol", "rc_rispam", "rc_rispamalokasi", "rc_rispamsatuan", "rc_rispamvol", "rc_rp2kpkp", "rc_rp2kpkpalokasi", "rc_rp2kpkpsatuan", "rc_rp2kpkpvol", "rc_rtbl", "rc_rtblalokasi", "rc_rtblsatuan", "rc_rtblvol", "rc_sddt", "rc_skbup", "rc_skbupalokasi", "rc_skbupsatuan", "rc_skbupvol", "rc_skma", "rc_skt", "rc_spb", "rc_spd", "rc_spp", "readines", "rmp", "rpm", "sa1thn_id", "sajp_id", "sastra_id", "sastra_uraian", "satuan_output", "sbsn", "score_admin_pembiayaan", "score_jaringan_jalan", "score_kpk", "score_politik_anggaran", "score_readines", "sinkronisasi", "status", "status_konreg", "status_rakor", "status_verifikasi", "sub_aktivitas", "subkawasan_nama", "suboutput_id", "suboutput_nama", "sumber_arahan", "sumber_dana", "sumber_data_lainnya", "sumber_input_data", "tahun_anggaran", "tapisan", "time_create", "time_update", "total_score", "unit_id", "unit_nama", "uraian_ssp", "uraian_sspn", "user_create", "user_update", "volume", "waa_", "wab_", "wac_", "wba_", "wbb_", "wbc_", "wca_", "wcb_", "wcc_", "wda_", "wdb_", "wdc_", "wps_kode", "wps_nama", "x", "y")values (value1,value2,...,value (n))

标签: sql-serversql-insertsql-server-2017

解决方案


不幸的是,在 SQL Server 2019 之前,没有简单的方法来查明错误消息 8152“字符串或二进制数据将被截断”的原因。

虽然不是一个理想的解决方案(但它可以挽救您的理智!),但您可以做的是安装 SQL Server 2019 的本地并排预览实例,并针对它运行您的应用程序,以获取确切原因错误!

参考:字符串或二进制数据将被截断:替换臭名昭著的错误 8152


推荐阅读