代码注释规范
1 代码头部注释
在SQL代码块(sql文件或存储过程)的头部进行注释,标注创建人(Author)、创始日期(Create date)、修改信息(Modify [n])。
格式:
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- Modify [n]: < Modifier,Date, Description >
-- =============================================
示例:
-- ================================================
-- Author: Zhanghaifeng
-- Create date: 2006-12-25
-- Description: H2000报关单回执处理
-- Modify [1]: 郑佐, 2006-12-31, 简化逻辑判断流程
-- Modify [2]: 郑佐, 2007-01-20, 更新条件判断
-- ================================================
注:日期格式使用 yyyy-MM-dd。Modify [n] n代表修改序号,从1开始,每次修改加1。
2. TRANSACTION注释
建议在每个事务的开头进行注释,说明该事务的功能。
-- < Modifier,Date, Description >
BEGIN TRANSACTION;
一、数据库命名规则
数据库命名规则取决于数据库兼容的级别。
MS SQL数据库版本和兼容级别对照表:
MS SQL数据库版本 | 兼容级别 |
不知 | 60 |
不知 | 65 |
MS SQL 7.0 | 70 |
MS SQL 2000 | 80 |
MS SQL 2005 | 90 |
MS SQL 2008 | 100 |
备注:数据库级别可以使用存储过程“sp_dbcmptlevel”来修改。
这里以兼容级别90为例来说明数据库的命名规则:
step1
step2
step3
step4
二、T-SQL书写规范
- “@”表示局部变量;“@@”表示全局变量;“##”表示全局临时对象;
- 自定义存储过程:“pr_”+Pascal命名的英文字符,系统存储过程:“sp_“+全部小写的英文字符
- 视图:“vw_”+Pascal命名的英文字符
- 表:“tb_”+Pascal命名的英文字符
- 触发器:“trg_”+Pascal命名的英文字符+“_”+“功能描述”。比如:trg_Product_Insert
- 游标:“crs_”+Pascal命名的英文字符
良好的命名习惯是一种美德,下面是个人整理的数据库命名规范:
1. 数据库名:
1.1)用产品或项目的名字命名;
1.2)Pascal Case,如AdventureWork;
1.3)避免使用特殊字符,如数字,下划线,空格之类;
1.4)避免使用缩写
2. 表名
2.1)使用复数,Pascal Case,而复数只加在最后一个单词上如:Products,Users,UserRoles
2.2)避免使用特殊字符,如数字,下划线,空格之类;
2.3)避免使用缩写
3. 列名
3.1) 使用Pascal Case
3.2) 避免和表名重复,避免数据类型前缀如: Int
3.3) 避免使用缩写或者特殊字符
4. 存储过程
4.1)用动词加表名描述操作类型
4.2)使用前缀:sp+{ “Insert”, “Update”, “Delete”, “Get”, “Validate”,...}
5. 视图
5.1)参考表名规则
5.2)用"vw"做前缀
6. 触发器
6.1)使用"trg"前缀
6.2) 使用操作类型+表名,如:trg_ProductsInsert
7. 索引
7.1)使用格式如:idx_{表名}_{索引列名}_{Unique/NonUnique}_{Cluster/NonCluster}
8. 主键
8.1) 使用格式如:pk_{表名}_{主键列名}
9. 外键
9.1) 使用格式如:fk_{主表名}_{主表的列名}_{引用表名}_{引用表的列名}
10. default
10.1) 使用格式如:df_{表名}_{列名}
11. 约束
11.1) 使用格式如:ck_{表名}_{列名}
12. 变量
12.1) 参照列名规则