在具有主键的表上插入触发器之后

时间:2018-05-15 15:47:33

标签: sql-server triggers primary-key

我有以下2个表格:

  1. Order包含以下列:OrderID为PK,Order Name等。

  2. Delivery包含以下列:DeliveryID为PK,OrderIDdate等。

  3. 我在Order表上的更新触发器之后写了一个新行,它向Delivery表插入一个新行并用OrderID填充它:

    create Trigger CopyOrderID_To_DeliveryTable
    on Order
    for insert 
    as 
    begin
        declare @ID int
    
        select @ID = REQUESTID from inserted  
    
        insert into Delivery (OrderID) 
        values (@ID)
    end
    

    这应该可以正常工作,但问题是DeliveryID表中的Delivery列是不可为空的PK。因此,每当我尝试更新Order表时,都会收到一条错误消息,DeliveryID表中的Delivery不允许空值!

    如何在不改变DeliveryID列的情况下摆脱此消息?

    屏幕截图显示了DeliveryID列属性:

    enter image description here

0 个答案:

没有答案