存储过程检查项

设计

  • 包括NULL常量在内的相等和不等比较
  • 非ANSI外部联接语法
  • 非ANSI内部联接语法
  • 过时的语法,字符串_别名=表达式
  • 在执行数据操作语句(像INSERT/UPDATE/DELETE)之后,使用TRY..CATCH结构或者检查该@@ERROR变量
  • 在存储过程、视图和表值函数中支持SELECT *
  • 使用SCOPE_IDENTITY()替换@@IDENTITY
  • 支持ORDER BY子句中使用常量已经过时
  • TOP子句用在不带ORDER BY子句的查询
  • 在INSERT语句中总是使用列的列表
  • 反对不带WITH关键字的表提示用法
  • (聚集或非聚集)索引类型未指定
  • 避免使用GOTO语句来改善可读性
  • 考虑使用括号来改善可读性和避免由于逻辑操作符的优先级导致的错误。

命名

  • 在命名函数的时候避免使用“fn_”前缀
  • 在命名存储过程的时候避免使用“sp_”前缀

性能

  • 变量@variable已声明但从未使用
  • 变量@variable已使用但之前未分配
  • 变量@variable已分配但其值从未使用
  • 在LIKE谓词中以“%”开始的模式
  • 考虑使用表变量来代替临时表
  • 在触发器中避免返回结果
  • 使用非常小的变量长度类型(大小为1或者2)
  • 在存储过程和触发器中使用“SET NOCOUNT ON”选项
  • 在WHERE子句中避免使用不等操作符(<>,!=)
  • 本地游标没有关闭
  • 本地游标无明确释放
  • 本地游标引用无明确释放
  • 在WHERE子句的函数中避免封装过滤列
  • 可以从WHERE子句中提取确定性函数调用,避免不必要的表扫描
  • 输入参数从未使用
  • 输出参数从未赋值
  • 在WHERE子句中避免使用“NOT IN”谓词
  • 不要使用不带聚合函数的“GROUP BY”子句
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值