【发布时间】:2010-11-09 02:43:57
【问题描述】:
SQL Server 2008 是否支持CREATE ASSERTION 语法?
我无法找到一个直接的答案。
【问题讨论】:
标签: sql sql-server-2008 assertion
SQL Server 2008 是否支持CREATE ASSERTION 语法?
我无法找到一个直接的答案。
【问题讨论】:
标签: sql sql-server-2008 assertion
没有 SQL Server 2008 不支持这种语法。
【讨论】:
不,您可以改用CHECK constraint 或TRIGGER,具体取决于复杂性。
【讨论】:
CREATE ASSERTION 处于架构级别,而 SQL Server 在该级别没有任何内容。触发器是程序性的,无法与 SQL-92 的基于集合的范例相提并论。
SQL Server 2008 不支持CREATE ASSERTION。
事实上,目前的 SQL 产品都没有正确支持CREATE ASSERTION。 Sybase SQL Anywhere 支持它,但据报道有时会出现违反约束的问题。 Rdb 在 DEC 的照料下确实支持它(他们显然在 SQL 标准的早期有影响力,这可能是 CREATE ASSERTION 首先成为标准的原因),但该产品已不复存在。
停止新闻:according to their documentation,HyperSQL (HSQLDB) 支持断言(尽管我想知道他们为什么不在their list of features 上大喊大叫)。
【讨论】:
我最近在寻找这个,发现http://hsqldb.org/doc/guide/databaseobjects-chapt.html#dbc_assertions 说“一个断言是一个顶级模式对象。它由一个不能为假的(可能是未知的)组成。HyperSQL 确实尚不支持断言。”
【讨论】: