SQL Server Express是免費版的SQL Server,主要差別是檔案Size的限制,超出時錯誤如下:
SQL Express 2005/2008
1CPU, 1GB RAM(Per Instance), 4GB DB Size (Per Database Size)
SQL Express 2008 R2/2012/2014
1CPU, 1GB RAM(Per Instance), 10GB DB Size (Per Database Size)
SQL Server Express是免費版的SQL Server,主要差別是檔案Size的限制,超出時錯誤如下:
SQL Express 2005/2008
1CPU, 1GB RAM(Per Instance), 4GB DB Size (Per Database Size)
SQL Express 2008 R2/2012/2014
1CPU, 1GB RAM(Per Instance), 10GB DB Size (Per Database Size)
當你在MVC專案裏想在App_Code目錄下新增Helper類別,你會發現在專案裏總是無法使用它,明明都有using namespace路徑仍是看不到。原來該Class檔案右鍵屬性裏的Build Action預設是Content,必須改成「Compile」該Class才能被辨別。
一個平時沒注意的小細節,總是讓人白白花了好多時間尋找原因。
查詢資料通常會依UI輸入條件,最後得到要送往DB執行的SQL字串,以下面查詢畫面為例:
常見的組合SQL字串之實作方式約有:
以上的作法我都實作過,甚至為了跨不同資料庫對於不相容的SQL語句作自動轉換(如LIMIT分頁),但總覺得不是很滿意,因為程式裏的SQL字串應該要能「非常輕易」貼到管理工具去交叉測試執行才對。因此提出了以下的寫法,既簡單又好理解,供大家參考。
先將要執行的完整SQL做好斷行排版及註解(這是程序員的專業素養),再加入StringBuilder類別(加上@即可斷行),每一個過濾條件前加入辨別代碼(標示1-2),最後再判斷UI控制項上是否有輸入值,替代文本變數即可。
本身這些AND條件就已註解不會執行,替代成空白字元等同執行,如此一來非常好維護SQL及作事前的資料測試。我也習慣在SQL文本前端加入SQL變數宣告,方便程序員作測試及提醒輸入條件的參數指定。