甚至不确定如何搜索这样的内容,例如:
First Table:
Id, Date, Maximum records
Second Table:
Id, Date, more properties
是否可以在服务器端定义一些规则,如果第二个表具有相同日期的太多记录,并且它超过了第一个表中当前日期的最大记录值,那么服务器将返回错误或某种类型的异常会阻止该日期的SQL插入查询?
可能的:
First Table:
1,Date1,2
Second Table:(Maximum 2 on Date 1)
1,Date3,...
2,Date1,...
3,Date1,...
不可能:
First Table:
1,Date1,2
Second Table:(Maximum 2 on Date 1)
1,Date3,...
2,Date1,...
3,Date1,...
4,Date1,...
如果无法做到这一点,那么在实体框架的Windows窗体应用程序上实现这种类型检查的最佳方法是什么?
答案 0 :(得分:2)
简短的回答是肯定的。
您需要编写trigger(作为插入,删除和更新语句执行的一部分执行的特殊类型的存储过程)来强制执行约束,因为它们无法在关系模式中表达。缺点是,与某些SQL实现不同,SQL Server在完成插入,删除或更新语句的所有工作后触发:如果触发器验证失败,则事务将回退,这意味着可能必须撤消许多工作。