【发布时间】:2013-01-01 08:57:21
【问题描述】:
我有一个名为Couple 的表,其中包含以下字段CoupleId, HusbandId , WifeId ,
StartDate , EndDate
上表包含情侣信息,CoupleId是主键
HusbandId 和 WifeId 是另一个名为 Person 的表的外键
StartDate 和 EndDate 表示男性与HusbandId 和女性与WifeId 之间的婚姻开始/结束日期
在我的问题中,我有一个条件是 w 女性不能同时与两个或更多男性“同步婚姻”
我有以下查询
SELECT
DISTINCT A.WifeID
FROM
Couple A
INNER JOIN Couple B
ON A.WifeID = B.WifeID
AND A.HusbandID <> B.HusbandID
AND A.StartDate < B.EndDate
AND A.EndDate > B.StartDate;
返回任何具有同步婚姻的女性“同时与两个或更多男性结婚”
我想编写当有人想要插入或更新couple 时触发的触发器
表,并且我希望此触发器仅在它没有错误信息时才允许修改(例如,如果有人在情侣表上插入一行,并且这一行使 #4 的妻子同时与拖车或更多人结婚,这插入不能完成,因为它会在表格中生成错误的信息)
此时有人可以帮助我吗?
【问题讨论】:
标签: sql sql-server triggers sql-server-2012