2009-11-11 69 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而言不是那麼多),請使用它們。

相關問題