sql-server – Msg 8152,字符串或二进制数据将被截断

前端之家收集整理的这篇文章主要介绍了sql-server – Msg 8152,字符串或二进制数据将被截断前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个表:
CREATE TABLE Vendors

(
    VendorID            NUMERIC(10)     NOT NULL,VendorName          CHAR(50)        NOT NULL,VendorAddress       VARCHAR(30)     NULL,VendorCityName      VARCHAR(20)     NOT NULL,VendorStateName     CHAR(2)         NOT NULL,VendorZip           VARCHAR(10)     NULL,VendorContactName   CHAR(50)        NOT NULL,VendorContactPhone  VARCHAR(12)     NOT NULL,VendorContactEmail  VARCHAR(20)     NOT NULL,VendorSpecialty     CHAR(20)        NOT NULL

    CONSTRAINT VendorsPK        PRIMARY KEY (VendorID)      
);

并插入:

INSERT INTO Vendors(VendorID,VendorName,VendorAddress,VendorCityName,VendorStateName,VendorZip,VendorContactName,VendorContactPhone,VendorContactEmail,VendorSpecialty)
VALUES(151330,'Hyperion','77 West 66th Street','New York','NY',10023,'John Hinks','212-337-6564','jhinks@hyperionbooks.com','Popular fiction')

为什么这个语句会产生8152错误

解决方法

VendorContactEmail只有20个字节.您的第一行(jhinks@hyperionbooks.com)上的电子邮件地址长于24字节.许多电子邮件地址会更长.谁决定只允许20个字符在电子邮件地址列?根据标准,这应该是VARCHAR(320) – 对于域的@ 255,localpart 1的64个字符.
原文链接:https://www.f2er.com/mssql/75133.html

猜你在找的MsSQL相关文章