1

テーブルの生成を更新するトランザクションがあります。ある機械で製造する製品を設定します。ただし、このマシンがテーブルに既に存在する場合は、

PRIMARY KEY 制約 'produces_PK' に違反しています。オブジェクト 'dbo.TblProduces' に重複するキーを挿入できません。

この問題を解決するにはどうすればよいですか?

これはトランザクションです:

create proc update_products_and_machine_proc @machinNum int, @productName varchar(10) as
begin tran update_products_and_machine
    update TblProduces set machineNumber=@machinNum
    from TblProduces inner join TblMachine on TblMachine.machineNumber=
    TblProduces.machineNumber inner join TblProduct on TblProduces.productNumber=
    TblProduct.productNumber
    where TblProduct.productName=@productName and exists (select TblMachine.machineNumber
    from TblMachine where TblMachine.isWorking='true')
if @@ERROR <> 0 begin
    rollback tran
    goto on_error
end
commit tran update_products_and_machine
on_error: Print 'ERROR';
4

1 に答える 1