2013年11月25日 星期一

SQL Server 獨有特性

「To do a good job, one must first sharpen one's tools.」這句英文,我想大家應該都不默生。沒錯,工欲善其事,必先利其器,想要把玩T-SQL,當然就要了解它獨特的特性。讓我們來看看它的特性是怎樣的玩味。

1.不使用USING:SQL Server並不支援在連接中使用USING語句,因為會違反了標準並且是特定於SQL Server的。

2.唯一空值:SQL Server就會視所有的空值為唯一的。

3.優先空值:SQL ServerMySQL都有的特性,當在一個包含空值的欄位上使用ORDER BY時,會優先顯示,並沒有在標準中加以指定。

4.IN的限制:你不能在IN中使用多個欄位。

5.不支援LEAST GREATEST:SQL Server並不支援LEASTGREATEST,必須依賴CASE

6.BIT限制:對於Boolean,SQL Server支援一個特殊資料類型,稱之為BIT。但是,你不能在那些欄位上聚合AND或是OR(通常這些是由MAXMIN完成的)

7.相加和字元串連接的混淆:執行字元串連接與數值+都使用的是相同的操作符+ 。這可能會在數值和字串混合的情況下造成混淆。

8.不支援在嵌套中使用ORDER BY :在嵌套查詢和內聯(單查詢)表值函數中,ORDER BY並不受支援,除非在SELECT中使用TOPSQL並不保證記錄的順序,除非你用ORDER BY對其進行顯式定義。如果想要特定的順序,就在最外層查詢中加以指定。

9.Read、Write相互block:SQL ServerMySQL MyISAM都有的特性。因為ACID特性,SQL Server的鎖定系統會讓Read、Write相互block,即便它們是不同的記錄或工作也會相互block

10.函數TRIM的限制:SQL Server不讓TRIM函數來對一個字串(String)兩端的空格字元進行修整。

-雲遊山水為知已逍遙一生而忘齡- 電腦神手

沒有留言:

張貼留言