执行此查询时
create table Customer
(
customerid int,
customername varchar(20),
ContactName varchar(15),
Address varchar(25),
City char(10),
Postalcode int,
Country varchar(15)
)
select *
from Customer
insert into Customer(customerid, customername, ContactName, Address, City, Postalcode, Country)
values (4, 'Antonio Moreno', 'Taquería', 'Mataderos', 'México D.F.', '05023', 'Mexico')
我收到错误
Msg 8152,Level 16,State 14,Line 1
字符串或二进制数据将被截断。声明已经终止。
答案 0 :(得分:0)
给定的“城市”值超过10个字符,要么必须将城市值减少到10个字符以内,要么必须像char(20)那样扩展数据类型大小
答案 1 :(得分:0)
将City
列更改为修正长度:
ALTER TABLE Customer ALTER COLUMN City Varchar(20)
- 将varchar(20)
改为char(10)
,因为带有varchar的SQL将存储足够的字节作为字符串的有效长度,而如果字符串小于指定长度,则char数据类型将在字符串的末尾添加空格
然后放置你的insert子句:
insert into Customer(customerid, customername, ContactName, Address, City, Postalcode, Country)
values (4, 'Antonio Moreno', 'Taquería', 'Mataderos', 'México D.F.', '05023', 'Mexico')