園子裡關於預存程序的討論有很多,不少人建議將SQL語句寫在程式中,這篇隨筆討論一下SQL語句在程式中的寫法。
1string strSQL = "SELECT [AddressID], [AddressLine1], [AddressLine2], [City], [StateProvinceID], [PostalCode], [rowguid], [ModifiedDate] FROM [AdventureWorks].[Person].[Address] WHERE City = 'Bothell' ORDER BY AddressID";
這是最普通的一種寫法,而且在開發中被廣泛採用。
1 string strSQL = "SELECT " +
2 "[AddressID], " +
3 "[AddressLine1], " +
4 "[AddressLine2], " +
5 "[City], " +
6 "[StateProvinceID], " +
7 "[PostalCode], " +
8 "[rowguid], " +
9 "[ModifiedDate] " +
10 "FROM " +
11 "[AdventureWorks].[Person].[Address] " +
12 "WHERE " +
13 "City = 'Bothell' " +
14 "ORDER BY " +
15 "AddressID";
16
第二種寫法,除了讓人開著舒服一點外,沒有任何好處。
所示的寫法要更好一點,可以降低維護難度,提高開發效率,團隊開發中應該對這些小細節加以規定。其中,圖中標示的第一點可以看看在SQL Server 2005中通過菜單產生的SQL語句,但不知道為什麼SQL Server 2005的查詢編輯器產生的SQL語句還是那麼蹩腳。微軟完全可以解析SQL語句並使之成為更有利於開發的格式。
如果有兩個表進行串連,INNER(LEFT/RIGHT) JOIN等語句也應該寫在一行。另外,建議使用更簡單的英文別名代替中文表名。
呵呵,很簡單吧?如果有更好的書寫SQL語句的改進方案,請告訴我。