我搜索了互联网,但找不到解决方案。我使用以下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等所需的所有值。
我应该在哪里看?
答案 0 :(得分:1)
很抱歉,但我还无法发表评论,所以我需要发布一个"答案"。我建议:
请告诉我们它是怎么回事。
尼尔斯
答案 1 :(得分:0)
我缩小了范围。来自SQL Server的消息不正确!
这不是PRCRULE的问题。问题是FROMDATE也是FK,我将其从GETDATE ()
更改为CONVERT(DATE, GETDATE())
,因此我删除了时间,并且有效。