1

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

4

1 回答 1

0

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

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

因此,您只有 4 位可用于存储值,例如5000.00 is valid500000.00 导致溢出

于 2013-10-11T04:39:48.527 回答