代码注释规范

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书写规范

  1. “@”表示局部变量;“@@”表示全局变量;“##”表示全局临时对象;
  2. 自定义存储过程:“pr_”+Pascal命名的英文字符,系统存储过程:“sp_“+全部小写的英文字符
  3. 视图:“vw_”+Pascal命名的英文字符
  4. 表:“tb_”+Pascal命名的英文字符
  5. 触发器:“trg_”+Pascal命名的英文字符+“_”+“功能描述”。比如:trg_Product_Insert
  6. 游标:“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) 参照列名规则