21種好的SQL編程習慣

1、大小寫

大寫T-SQL 語言的所有關鍵字,謂詞和系統函數。變量名稱及遊標名稱使用Pascal樣式。數據類型定義使用全部小寫。

 

2、使用“;

使用“;”作爲 Transact-SQL 語句終止符。雖然分號不是必需的,但使用它是一種好的習慣。

 

3、存儲格式

儘量採用Unicode數據存儲格式,提高可移植性和兼容性,實際應用中儘量使用ncharnvarcharntext代替charvarchartext

 

4 類型選擇

如果字符具有明確的長度,使用nchar代替nvarcharchar代替varchar

在只有兩個可能數值時,使用bit代替intsmallint

SQL Server 2005中,使用nvarchar(MAX)代替ntextvarchar(MAX)代替textvarbinary(MAX)代替image

在特殊的數據表結構中可考慮xml數據類型,達到事半工倍的效果。

 

5、默認值

在建立數據表時,儘量使用默認值代替NULL值。比如設置CreatedDate列默認值爲GETDATE()。在可行的情況下設置字段爲不允許空。

 

6、字段長度

始終指定字符數據類型的長度,並確保允許用戶可能需要的最大字符數,避免超出最大長度時出現字符丟失現象。對於字符型數據,建議採用2n次方來定義數據長度。

示例:nvarchar(32)

  varchar(64)

 

7 使用“'

T-SQL 代碼中爲字符常量使用單引號,避免使用雙引號。

 

8、語句縮進

一個嵌套代碼塊中的語句使用四個空格的縮進。使用Microsoft SQL Server Management Studio ,選擇“工具”菜單,打開“選項”菜單,在選項對話框中選擇文本編輯器->純文本->製表符,選中“插入空格單選框”,設置“製表符大小”爲4,縮進大小爲“4”。

 

9、語句換行

建議SQL代碼每行以關鍵字或“'”開頭。

 

10   語句分割

使用一個(而不是兩個)空行分隔 T-SQL 代碼的邏輯塊。

 

11   使用“*

儘量避免在任何代碼中使用 SELECT *”。

 

12  表名別名

表名別名要簡短,但意義要儘量明確。通常使用大寫的表名作爲別名,使用 AS 關鍵字指定表或字段的別名。

 

13  類型轉換

不要依賴任何隱式的數據類型轉換,不要假定 T-SQL 會進行必要的轉換。例如,把數字變量賦予字符值。相反,在爲變量賦值或比較值之前,應使用適當的 CONVERT 函數使數據類型相匹配。

 

14  數值比較

不要將空的變量值直接與比較運算符(符號)比較。如果變量可能爲空,應使用 IS NULL IS NOT NULL 進行比較,或者使用 ISNULL 函數。

 

15   排序

決不要依賴 SELECT 語句會按任何特定順序返回行,除非在 ORDER BY 子句中指定了順序。通常,應將 ORDER BY 子句與 SELECT 語句一起使用。可預知的順序(即使不是最方便的)比不可預知的順序強,尤其是在開發或調試過程中。在返回行的順序無關緊要的情況下,可以忽略 ORDER BY ,減少資源開銷。

 

16  Unicode字符串

Unicode字符前面使用N前綴,避免引起數據的不一致。

 

17  BEGIN...END

SQL代碼快中儘量使用BEGIN...END 語句塊,提高代碼可閱讀性。

 

18   TRY

SQL Server 2005中對一些可能執行失敗的語句儘量使用TRY塊。Transact-SQL 語句組可以包含在 TRY 塊中,如果 TRY 塊內部發生錯誤,則會將控制傳遞給 CATCH 塊中包含的另一個語句組。

 

19   TOP子句

SQL Server 2005中加強了TOP的使用,儘量使用TOP(變量)來減少SQL拼串現象。

 

20  TRANSACTION編寫

只要在例程中使用多個數據庫修改語句,包括在一個循環中多次執行一個語句,就應考慮聲明顯式事務。在SQL SERVER 2005 中,增加了TRY塊可進行很好的應用。

 

21  存儲過程

在編寫存儲過程時,使用PROCEDURE 代替 PROC 簡寫。

示例:CREATE PROCEDURE [dbo].[存儲過程名字]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章