21種好的SQL程式設計習慣

iSQlServer發表於2010-09-09

1、大小寫
大寫T-SQL 語言的所有關鍵字,謂詞和系統函式。變數名稱及遊標名稱使用Pascal樣式。資料型別定義使用全部小寫。
 
2、使用“;”
使用“;”作為 Transact-SQL 語句終止符。雖然分號不是必需的,但使用它是一種好的習慣。
 
3、儲存格式
儘量採用Unicode資料儲存格式,提高可移植性和相容性,實際應用中儘量使用nchar、nvarchar、ntext代替char、varchar、text。
 
4、 型別選擇
如果字元具有明確的長度,使用nchar代替nvarchar;char代替varchar。
在只有兩個可能數值時,使用bit代替int或smallint。
在SQL Server 2005中,使用nvarchar(MAX)代替ntext;varchar(MAX)代替text;varbinary(MAX)代替image。
在特殊的資料表結構中可考慮xml資料型別,達到事半工倍的效果。
 
5、預設值
在建立資料表時,儘量使用預設值代替NULL值。比如設定CreatedDate列預設值為GETDATE()。在可行的情況下設定欄位為不允許空。
 
6、欄位長度
始終指定字元資料型別的長度,並確保允許使用者可能需要的最大字元數,避免超出最大長度時出現字元丟失現象。對於字元型資料,建議採用2的n次方來定義資料長度。
示例: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 簡寫。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-673046/,如需轉載,請註明出處,否則將追究法律責任。

相關文章