我是SQL Server 2012的新手,在练习时我发现了一个我无法纠正的错误。
我创建了一个包含主键的表和另一个包含其引用的表。参考表:
create table emp
(
empno integer not null,
ename varchar(10),
job varchar(9),
mgr varchar(10),
hiredate date,
sal decimal(7,2),
comm decimal(12,3),
deptno integer references dept(deptno)
)
尝试使用
插入值insert into emp values(100,'Sachin','IT','Srikanth','10-10-2009',
50000.00,500.00,1)
但是我收到了以下错误。
将数字转换为数据类型数字
的算术溢出错误
此外,如果我将COMM的数据类型更改为decimal
,则错误消失。
答案 0 :(得分:0)
在您的查询[decimal(7,2)]
中,数据类型是个问题。
(7,2)
告诉您该号码的总精度为7位,小数部分保留2位数。
因此,您只有4位可用于存储值,例如 5000.00有效, 500000.00会导致溢出。