1

甚至不知道如何搜索这样的东西,但例如:

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 窗体应用程序上实现这种类型的检查的最佳方法是什么?

4

1 回答 1

2

简短的回答是肯定的。

您需要编写一个触发器(一种特殊类型的存储过程,作为插入、删除和更新语句执行的一部分执行)来强制执行您的约束,因为它们不能在关系模式中表达。缺点是,与某些 SQL 实现不同,SQL Server 触发器在插入、删除或更新语句的所有工作完成触发:如果触发器验证失败,则事务回滚,这意味着可能需要做很多工作撤消。

于 2013-10-21T21:18:06.547 回答