LBu*_*kin 33 sql database sql-server oracle constraints
任何版本的SQL Server都支持可延迟约束(DC)吗?
从版本8.0开始,Oracle支持可延迟约束 - 仅在提交语句组时评估的约束,而不是在插入或更新单个表时.可延迟约束不仅仅是禁用/启用约束,因为约束仍处于活动状态 - 它们仅在稍后(批处理提交时)进行评估.
DC的好处是它们允许评估单独非法的更新,这些更新累积地导致有效的最终状态.一个示例是在两行之间的表中创建循环引用,其中每行需要存在一个值.没有单独的插入语句会通过约束 - 但组可以.
为了阐明我的目标,我希望将C#中的ORM实现移植到SQLServer - 遗憾的是,实现依赖于Oracle DC来避免在行之间计算插入/更新/删除命令.
Mir*_*emm 23
OT:有一些恕我直言,SQL Server不支持,但在企业环境中有意义:
所有这些小东西都会使您在SQL Server中几乎无用的全尺寸RDBMS所具有的许多参照完整性和事务性功能.例如,由于不支持可延迟约束,因此"事务"作为外部一致工作单元的概念被部分否定,唯一可行的解决方案 - 除了一些肮脏的解决方法 - 根本就没有定义参照完整性约束.我希望,事务的自然行为是你可以按照你喜欢的操作方式和顺序在其中工作,系统将确保它在你提交它时是一致的.限制产生了类似的问题,即ON DELETE CASCADE的参照完整性约束只能以只有一个约束可以导致对象的级联删除的方式定义.这真的不适合大多数现实世界的场景.
A-K*_*A-K 11
到目前为止,SQL Server不支持它们.你解决的问题是什么?