真的,不管是程序中的代码可以重构优化,在SQL Server的语句,也是可以的。
下面举个例子,在存储过程中,所传入的数据参数不能为空,另外在对数据表进行更新时,所更新的字段如果是空的话,就更新,如果传入的参数值与所更新的字段值相同,就不更新:
刚开始所写的代码如下:
看到否,上面的程序,代码冗余而具逻辑也需要花上一些时间才能理解得了。
先是获取所更新的字段值,然后判断该字段值是否为空,如果为空,还要判断所传入的参数值是否也为空,如果都不为空,才作更新动作。数据库字段值如果不为空,还要判所值入的值是否相同,不相同才做更新的动作。
就是后者的ELSE也似乎有点问题,虽然数据库所更新的字段不为空,但传入的值为空呢?
每每是早上的思考与思维大不一样,结果被Insus.NET修改如下:
先判断所传入的参数是否为空,如果为空,直接return。
接下来是判与所更新的字段值是否相同,不相同的话,直接更新就是了。
记录经验一点点。