代码之家  ›  专栏  ›  技术社区  ›  F.Mysir

insert语句与外键SQL冲突

  •  0
  • F.Mysir  · 技术社区  · 8 年前

    我在网上搜索过,但没有找到解决方案。我使用以下SQL语句来更新某些单元格或创建新行:

    UPDATE [dbo].[PRCRDATALNS]
    
    SET   FLD01 = :TIMX1 
         ,FLD02 = :TIML1
    
    WHERE DIM1= :vmtrl AND PRCRULE= '2' AND LINENUM = '1'
    
    IF @@ROWCOUNT=0
    
    INSERT INTO [dbo].[PRCRDATALNS] (
    
           COMPANY 
          ,SODTYPE     
          ,SOTYPE
          ,PRCRULE
          ,DIM1
          ,DIM2
          ,DIM3
          ,PRCRDATALNS
          ,LINENUM
          ,FROMDATE
          ,FLD01
          ,FLD02
          ,SCALEQTY
          )
    
    VALUES
            ('1'
            ,'13'
            ,'1'
            ,2
            ,:vmtrl
            ,'0'
            ,'0'
            ,'1'
            ,'1'
            ,GETDATE ( ) 
            ,:TIMX1
            ,:TIML1
            ,'1'
            );
    

    The insert statement conflicted with the FOREIGN KEY constraint "XD_PRCRDATALNS_PRCRULE". The conflict occurred in database "KOMBOS", table "dbo.PRCRDATA". The statement has been terminated.

    我知道这意味着什么。首先,它没有像其他人一样在专栏中提及任何关于问题的内容。其次,表PRCRDATA具有所需的所有值,如PRCRULE、SODTYPE、SOTYPE等。

    我应该看哪里?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Niels Berglund    8 年前

    • 通过检查,找出FK冲突针对的列 dbo的源。PRCRDATA和
      • 完成后,您现在应该能够看到 INSERT语句中有问题的值。

    请告诉我们进展如何。

        2
  •  0
  •   F.Mysir    8 年前

    我缩小了范围。来自SQL Server的消息不正确! 这不是问题的症结所在。问题是FROMDATE也是一个FK,我把它从 GETDATE () CONVERT(DATE, GETDATE())