我正在使用Microsoft SQL Server 2008,我需要创建一个约束,如果[驱动程序]不允许来源[发件人]或目的地[收件人],则会阻止创建/更新[Tx]现场。
表:
这是一个查询,将显示违反规则的任何记录:
select * from DriverForbiddenSite dfs
join Schedule sch on dfs.driverId=sch.driverId
join Tx tx on sch.scheduleId=tx.scheduleId
left join Shipper shi on shi.shipperId=tx.shipperId
left join Consignee con on con.consigneeId=tx.consigneeId
where dfs.transloadLocationId=shi.transloadLocationId or dfs.transloadLocationId=con.transloadLocationId
如果网站上不允许使用驱动程序,最好如何阻止创建Tx?
由于
答案 0 :(得分:0)
完全归功于拉胡尔。我试图通过使用约束来解决这个问题,而我应该使用触发器。 “而不是插入”和“代替更新”触发器将允许我在插入/更新Tx记录之前检查Tx上是否允许驱动程序。
感谢Rahul,请随意输入您自己的答案,我会接受。