开发者

Does SQL Server 2008 support the CREATE ASSERTION syntax?

Does SQL Server 2008 support the CREA开发者_高级运维TE ASSERTION syntax?

I haven't been able to find a straight answer on this.


No SQL Server 2008 does not support this syntax.


No, you'd use a CHECK constraint or a TRIGGER instead, depending on complexity.

  • CHECK constraint: at the row level only
  • TRIGGER: across rows or using other tables


SQL Server 2008 does not support CREATE ASSERTION.

In fact, no current SQL products support CREATE ASSERTION properly. Sybase SQL Anywhere supports it but reportedly has problems allowing constraints to sometimes be violated. Rdb did support it when it was looked after by DEC (who apparently were influential in the early days of the SQL standards, probably the reason why CREATE ASSERTION is in the standard in the first place) but that product is no more.

STOP PRESS: according to their documentation, HyperSQL (HSQLDB) supports assertions (though I'm left wondering why they don't shout about it on their list of features).


I was looking for this recently and found that http://hsqldb.org/doc/guide/databaseobjects-chapt.html#dbc_assertions says "An ASSERTION is a top-level schema object. It consists of a that must not be false (can be unknown). HyperSQL does not yet support assertions."

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜