请问为什么在varchar()里面的数值报错,和在CardNo,CardOutNO,AccountCode报错呢


create table AccountInfo --账户信息
(
    AccountInfo int primary key identity(1,1) --账户编号
    AccountCode varchar(20) not null --身份证号码
    AccountPhone varchar(20) not null --电话号码
    RealName varchar(20) not null --真实姓名
    OpenTime smalldatetime not null --开户时间
)
create table BankCard  --银行卡
(
    CardNo varchar(30) primary key,--银行卡号
    AccountId int not null,--账户编号(与账户信息表形成主外键关系)
    CardPwd varchar(30) not null,--密码
    CardMoney money not null,--余额
    CardState int not null,--1.正常 2.挂失 3.冻结 4.注销
    CardTime smalldatetime default(getdate()) --开卡时间
)
create table CardExchange --交易信息表
(
    ExchangeId int primary key identity(1,1) --交易自动编号
    CardNo varchar(30) not null --银行卡号(与银行卡表形成主外键关系)
    MoneyInBack money not null --存钱金额
    MoneyOutBack money not null --取钱金额
--存取钱操作也可以是:MoneyChangeBack money not null 即设置为1个变量
--当MoneyChangeBack>0,则视为存钱,<0则视为取钱
    ExchangeTime smalldatetime not null --交易时间
)
create table CardTransfer --转账信息表(存储转账信息记录)
(
    TransferId int primary key identity(1,1) --转账自动记录编号
    CardNoOut varchar(30) not null --转出银行卡号(与银行卡表形成主外键关系)
    CardNoIn varchar(30) not null --转出银行卡号(与银行卡表形成主外键关系) 
    TransferMoney money not null --交易金额
    TransferTime smalldatetime not null --交易时间
_)
create table CardStateChange --状态信息变化表(1.正常 2.挂失 3.冻结 4.注销0
(
    StateId int primary key identity(1,1) --状态自动编号
    CardNo varchar(30) not null --银行卡号(与银行卡表形成主外键关系)
    OldState int not null --卡原始状态
    NewState int not null --卡新状态
    StateWhy varchar(200) not null --状态变化原因
    StateTime smalldatetime not null --记录时间
)
    

请问为什么在varchar()里面的数值报错,和在CardNo,CardOutNO,AccountCode报错呢?

你的卡号多长啊,超出varchar最大范围就不行了,有ssms提示截图嘛

报错信息到底是什么