回答

收藏

错误,尝试插入时字符串或二进制数据将被截断

技术问答 技术问答 119 人阅读 | 0 人回复 | 2023-09-13

我正在运行以下行的data.bat文件:
3 F) M% o( a0 D: g* I2 \9 `7 zRem Tis batch file will populate tables
1 m: f- b4 P5 [) n1 Z! Qcd\program files\Microsoft SQL Server\MSSQL" @; S( j+ D: |; Z0 {. ~1 ^
osql -U sa -P Password -d MyBusiness -i c:\data.sql
3 \) ?% g1 U3 x* u; q. sdata.sql文件的内容为:
7 Z3 e! k( f; z' |   insert Customers' |: F# e9 {3 p! s  X: x
            (CustomerID, CompanyName, Phone)
2 A. J/ X4 b: C* h$ n             Values('101','Southwinds','19126602729')" n$ K( n2 Z4 L' B6 B- I
还有8条相似的行用于添加记录。
0 {! w9 X7 B  Y5 t, ]当我跑这跟start> run> cmd> c:\data.bat,我收到此错误信息:
1 W6 X4 V3 l( |( |3 k) B1>2>3>4>5>....6 U9 R. J; G6 W, G' M1 ]  Z
Msg 8152, Level 16, State 4, Server SP1001, Line 1
$ M3 q. ^# c! t9 B0 [0 Bstring or binary data would be truncated.
5 ?: l) C, ^  w+ f: z' {9 E6 e! W5 f5 a

; a# b  D) g7 C4 K) e/ V% B3 e# G9 b# i( O! f( p5 `! J1 w
  ?+ ?; ^0 K7 b: W; F: j
; g) G; D2 y) e- s% l8 n
& V. f1 K7 s. e6 e* j
另外,我显然是新手,但是Level #,它的state #意思和含义是什么,以及如何查找错误消息,例如上面的错误消息:8152?
! Q& Y4 z8 v3 B, F4 ^( u% t               
$ Y! L3 B' r+ H7 ]* g解决方案:$ w: s- ~. E0 S* a7 e2 s9 f# x5 Q
               
# R4 u! }& L  b( F8 @& b& D8 P" _$ x% h/ c% z
4 ]8 R( e; ^% Z. v; j" l( m; D
                来自@gmmastros的答案
2 d+ }- [% K' o3 s每当您看到消息时…5 u/ Q# Y) _: h
$ }* g/ F* H  k0 ~$ n, E* B" Q
字符串或二进制数据将被截断$ d+ e" B; a) i) r2 i9 c
8 x* i% Q9 `. G* n  v
想一想…这个领域还不够大,无法保存我的数据。
$ E+ x( g+ Y  z; B9 e/ G9 m+ v检查客户表的表结构。我认为您会发现一个或多个字段的长度不足以容纳您要插入的数据。例如,如果“电话”字段是varchar(8)字段,而您尝试在其中输入11个字符,则会出现此错误。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则