.net Sql语句的约束
我有两张桌子 1..net Sql语句的约束,.net,sql,sql-server,linq-to-sql,.net,Sql,Sql Server,Linq To Sql,我有两张桌子 1.销售项目 2.库存项目 我想确保在sale\u items表中插入任何项目时,其qty必须小于(Stock\u items.qty-Sales\u items.qty),如果此条件不成立,则插入应失败并引发异常 我应该怎么做?我需要将sql约束与表达式或sql触发器一起使用吗?可以同时使用触发器和约束我会为特定场景选择一个约束。 这是因为触发器实际上是在插入/更新/删除时,如添加或更新另一行时,当您想主动执行某件事时使用的。在您的场景中,实际上不需要触发器。您的场景是约束需求的
销售项目
2.库存项目
我想确保在sale\u items
表中插入任何项目时,其qty
必须小于(Stock\u items.qty-Sales\u items.qty
),如果此条件不成立,则插入应失败并引发异常
我应该怎么做?我需要将sql约束与表达式或sql触发器一起使用吗?可以同时使用触发器和约束我会为特定场景选择一个约束。 这是因为触发器实际上是在插入/更新/删除时,如添加或更新另一行时,当您想主动执行某件事时使用的。在您的场景中,实际上不需要触发器。您的场景是约束需求的定义。使用触发器的唯一原因是要抛出自定义错误消息 请参见作为约束的参考
希望我能帮忙 可以使用触发器和约束来完成我会为特定场景选择一个约束。 这是因为触发器实际上是在插入/更新/删除时,如添加或更新另一行时,当您想主动执行某件事时使用的。在您的场景中,实际上不需要触发器。您的场景是约束需求的定义。使用触发器的唯一原因是要抛出自定义错误消息 请参见作为约束的参考
希望我能帮忙 即使可以使用触发器强制执行业务规则,您也可以将检查约束与用户定义的函数一起使用:
ALTER TABLE sales_items
ADD CONSTRAINT CHECK (qty < dbo.udfCheckAvailableStock(YourProductIdColumn, qty))
ALTER TABLE sales\u项目
添加约束检查(数量
如果在Sales\u Items中添加新行时需要更新Stock\u Items,我会使用触发器
触发器可以强制执行比那些更复杂的限制
使用检查约束定义。与检查约束不同,触发器可以
引用其他表中的列。例如,触发器可以使用
从另一个表中选择以与插入或更新的数据进行比较
并执行其他操作,如修改数据或显示
用户定义的错误消息
即使可以使用触发器强制执行业务规则,也可以将检查约束与用户定义的功能一起使用:
ALTER TABLE sales_items
ADD CONSTRAINT CHECK (qty < dbo.udfCheckAvailableStock(YourProductIdColumn, qty))
ALTER TABLE sales\u项目
添加约束检查(数量
如果在Sales\u Items中添加新行时需要更新Stock\u Items,我会使用触发器
触发器可以强制执行比那些更复杂的限制
使用检查约束定义。与检查约束不同,触发器可以
引用其他表中的列。例如,触发器可以使用
从另一个表中选择以与插入或更新的数据进行比较
并执行其他操作,如修改数据或显示
用户定义的错误消息