2009-11-11 72 views
3

您可以在SQL Server Express 2005或2008中运行ANSI SQL语句吗?SQL Server Express ANSI是否符合?

+2

请参阅Brian的答案,如果您的头脑中有任何不明确的地方,Express版的功能与“完整版”的功能几乎相同,除了核心数据库和TSQL方面的所有内容外,数据库可以获得的大小除外。 – 2009-11-11 01:37:13

回答

1

如果你只使用SQL Server后端为你的产品,忘记ANSII sql,T-SQL有更高效和有效的方式来查询SQL服务器数据库如果你必须有多个后端,ANSII是可以的,但是如果你不这样做,那么将自己限制在可用的最不有效的代码上是愚蠢的。任何数据库后端都是如此,该数据库的专有语言被设计为运行比其他任何东西都好。

但回答你的问题,是的一些ANSII标准的作品,其中一些没有。对于任何基本的查询你都可以,但它是复杂的东西,往往真的指出了差异。所以基本上你不能退出测试。无论如何你应该这样做。

1

它只是部分符合ANSI标准。最大的不同是字符串连接运算符,它应该是||,但在SQL Server中是+

此外,根据当前数据库的排序规则,它可能不符合标准要求的区分大小写规则。

其他(我认为需要的),ANSI功能缺失:

  • 没有ANSI日期/时间文本(DATE '2012-08-28'TIMESTAMP '2012-08-28 17:33:05'
  • 没有间隔的数据类型
  • 行构造VALUES(外INSERT子句)
  • 没有元组比较(col1, col2) = (1,2)
  • NULLS FIRST/LAST opt ion for ORDER BY

虽然大部分缺失的功能在T-SQL中都有一些非标准的等价物。

SQL标准是一件好事,如果我有两个SQL结构之间的选择,我选择非标准结构的标准结构。

但是编写独立于DBMS的应用程序根本无法工作(好) - 至少不适用于非平凡的应用程序。

如果它确实是DBMS独立的,那么它仅仅意味着它在所有的DBMS上都会同样缓慢。

您为所有SQL Server功能付出了大量现金(或者对于SQL Server Express而言不是那么多),请使用它们。

相关问题