2013-10-11 74 views
1

我是SQL Server 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,誤差消失。

+2

我無法使此插入語句失敗。你確定這確實是失敗的嗎? –

+0

查詢無誤,在我身邊執行得很好 – bgs

回答

0

在您的查詢[decimal(7,2)]數據類型是問題。

(7,2)告訴您該數字可以具有總共7位數的精度,其中2位保留給小數部分。

因此,你只有4位像5000.00有效可用來存儲值,以及500000.00導致溢出

+1

問題中沒有值500000.00。 50000.00在那裏,但它適合7,2就好了。 –

+0

是的。同意..但是,這種情況可能算術溢出異常拋出.. – bgs

+0

我懷疑你是對的,並且OP沒有真正揭示導致錯誤的真實陳述,但你的答案仍然意味着有一個無效在這個問題中的價值(也許你錯誤地閱讀),哪裏沒有...... –