无法执行插入操作

时间:2015-02-27 11:23:38

标签: sql-server-2008

我的新表是

create table #Det_rec(
C_ID varchar(16),
Allot_Quan decimal(12,3),
LocIn_Allot_Quan decimal(12,3),
LRC smallint default 00,
LocIn_R varchar(50) DEFAULT '      ',
LocIn_Date datetime default '   ',
Filler numeric(8) default '   ',
RTA_Ref_No varchar(8) default'CDSL----',
isin_opt varchar(10))

执行插入操作时

INSERT INTO #Det_rec (C_ID,Allot_Quan,isin_opt)
select 
t.credit_dpclid,
cast(t.qty as decimal(12,3)),
t.isin_opt 
from fin_mst f inner join #temps t on f.IHNO = t.IHNO 

我收到了像

这样的错误
  

Msg 8114,Level 16,State 5,Line 1   将数据类型varchar转换为数字

时出错

我已经应用了转换投射功能,但我仍然收到此错误。

1 个答案:

答案 0 :(得分:0)

尝试使用此代码,因为任何一个数量值都可能是字符串。

CREATE TABLE #Det_rec
  (
     C_ID             VARCHAR(16),
     Allot_Quan       DECIMAL(12, 3),
     LocIn_Allot_Quan DECIMAL(12, 3),
     LRC              SMALLINT DEFAULT 00,
     LocIn_R          VARCHAR(50) DEFAULT '      ',
     LocIn_Date       DATETIME DEFAULT '   ',
     Filler           NUMERIC(8) DEFAULT '   ',
     RTA_Ref_No       VARCHAR(8) DEFAULT'CDSL----',
     isin_opt         VARCHAR(10)
  )

INSERT INTO #Det_rec
            (C_ID,
             Allot_Quan,
             isin_opt)
SELECT t.credit_dpclid,
       cast(t.qty AS DECIMAL(12, 3)),
       t.isin_opt
FROM   fin_mst f
       INNER JOIN #temps t
               ON f.IHNO = t.IHNO
WHERE  isnumeric(t.qty) = 1