SQL 服务器 2012年数据类型错误



我是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,则错误将消失。

在查询中,[decimal(7,2)]数据类型是问题所在。

(7,2)告诉您,该数字的总精度可以达到 7 位,其中 2 位保留用于小数部分。

因此,您只有 4 位数字可用于存储值,例如 5000.00 有效 ,以及导致溢出的 500000.00

最新更新