'('。issue

时间:2017-05-23 18:22:47

标签: sql

我创建了一个这样的存储过程:

INSERT (keyMolde, nEficiencia, nCavidades, 
        mdFechaCarga,mdOrigenCarga, mdUsuarioCarga, bActivo)
        VALUES (Origen.keyMolde, Origen.nEficiencia, CASE WHEN  CAST(Origen.sCavidades AS INT) = Origen.sCavidades THEN Origen.sCavidades  
       ELSE CAST(Origen.sCavidades AS Numeric(12,0)) END, 
                Origen.mdFechaCarga, Origen.mdOrigenCarga, Origen.mdUsuarioCarga, Origen.bActivo);

当我尝试跑步时,我得到Incorrect syntax near '('.,但我真的找不到我想要关闭的地方'(',首先我瘦了我忘了VALUES

 (Origen.keyMolde, Origen.nEficiencia, CASE WHEN  CAST(Origen.sCavidades AS INT) = Origen.sCavidades THEN Origen.sCavidades  
           ELSE CAST(Origen.sCavidades AS Numeric(12,0)) END

所以我尝试将另一个')'作为:ELSE CAST(Origen.sCavidades AS Numeric(12,0))) END但是sql throw')'附近的语法错误,我该怎么想结束这句话?谁能在那里喝我?

1 个答案:

答案 0 :(得分:3)

正如Ollie在评论中所说,更改您的插入内容以使用INSERT INTO.. SELECT

INSERT INTO Table --Table you want to insert to
            (keyMolde, 
             nEficiencia, 
             nCavidades, 
             mdFechaCarga,
             mdOrigenCarga, 
             mdUsuarioCarga, 
             bActivo)
SELECT Origen.keyMolde, 
       Origen.nEficiencia, 
       CASE WHEN  CAST(Origen.sCavidades AS INT) = Origen.sCavidades 
            THEN Origen.sCavidades  
            ELSE CAST(Origen.sCavidades AS Numeric(12,0)) END, 
       Origen.mdFechaCarga, 
       Origen.mdOrigenCarga, 
       Origen.mdUsuarioCarga, 
       Origen.bActivo
FROM Origen