真的,不管是程序中的代碼可以重構優化,在SQL Server的語句,也是可以的。下面舉個例子,在存儲過程中,所傳入的數據參數不能為空,另外在對數據表進行更新時,所更新的字段如果是空的話,就更新,如果傳入的參數值與所更新的字段值相同,就不更新:剛開始所寫的代碼如下:看到否,上面的程序,代碼冗余而具邏輯也需要花上一些時間才能理解得了。先是獲取所更新的字段值,然后判斷該字段值是否為空,如果為空,還要判斷所傳入的參數值是否也為空,如果都不為空,才作更新動作。數據庫字段值如果不為空,還要判所值入的值是否相同,不相同才做更新的動作。就是后者的ELSE也似乎有點問題,雖然數據庫所更新的字段不為空,但傳入的值為空呢?每每是早上的思考與思維大不一樣,結果被Insus.NET修改如下:
先判斷所傳入的參數是否為空,如果為空,直接return。接下來是判與所更新的字段值是否相同,不相同的話,直接更新就是了。
記錄經驗一點點。
新聞熱點
疑難解答