规则 (Transact-SQL)[1] 是可重用的,从而克服了检查约束不可重用的缺点。
现在我读到[1]:
- “此功能将在 Microsoft SQL Server 的未来版本中删除。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。我们建议您改用检查约束。检查约束是通过使用创建的CREATE TABLE 或 ALTER TABLE 的 CHECK 关键字”
那么,什么是规则而不是规则?为什么它们被弃用?
==== Update:
Alex Kuznetsov,表级检查约束是否非常慢?
或者,与列级检查约束等相比,使用函数的表级检查约束速度较慢。规则作为其等价物(因为规则只是列级的)?
换句话说,列级检查约束和规则(隐式仅是列级)在性能上是否相同?
然后,我只看到删除了可重用性功能。之前就存在过使用不可重用的表级约束的情况。
另外,我更感兴趣的是了解为什么以及进一步期望什么,然后了解如何使用以前一直可用的旧功能来实现已弃用的系统功能的自定义替代品。
[1]
MS SQL Server 2008 R2 在线书籍。创建规则 (Transact-SQL)
http://msdn.microsoft.com/en-us/library/ms188064.aspx
好吧,规则可能处于边缘地位的一个原因是我相信规则每列只能有一个,并且它们只检查进入数据库的数据,也就是说它们不检查数据库中已有的数据。通过检查约束,您可以对给定列设置多个约束,并且它们对所有数据(传入的数据和数据库中已有的数据)强制执行。鉴于规则对于检查约束是什么来说似乎是一个糟糕的解决方案,微软可能最终意识到是时候摆脱它们了,而且它们不是 SQL 标准。
如果检查约束不能解决问题,您还可以考虑使用触发器来实现更复杂的逻辑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)