1、 数据库表中必须定义主键;
2、 数据库表中不建议定义外键;
3、 数据库中不允许定义事务名;
4、 事务操作过程要尽量小,只要不影响业务数据的完整性,必须将大事务拆分为多个小事务,直至不可拆分为止;
5、 在同一数据库中,所有事务更新多表的顺序必须保持一致;
6、 事务操作过程中不允许有交互,在前台代码中不允许将alert、messagebox、响应窗口等提示放在commit、rollback之前;
7、 在同一个事务中,从第一个UPDATE、INSERT、DELETE语句开始,直到Commit或Rollback为止,操作语句过程中不允许存在其他的查询、计算语句;
8、 在同一存储过程中,不允许事务嵌套;
9、 在同一存储过程中不允许多次begin tran;
10、在存储过程中,如果事务过程中出现rollback,不允许再执行该事务下的其他操作语句;commit和rollback必须做为一个事务的终结;
11、存储过程嵌套存储过程时,被嵌套的存储过程中不允许存在begintran;
12、前台代码中使用存储过程,不允许将commit、rollback放在CLOSE proc之前;
13、前台代码中使用存储过程,调用结束后必须紧跟commit、rollback结束当前事务;
14、尽可能少的使用触发器;在触发器中,不允许使用DDL语句(create、alter、drop)和commit、rollback语句;
15、数据库中数据量较大的操作不允许使用游标;
16、业务表查询语句一定要有范围的限定,避免全表扫描操作;
17、视图嵌套使用不能超过3层;
18、不允许使用没有意义的列作为聚集索引列,例如idendity加1自增列;
19、不允许隐式类型转换,例如字符型一定要用’’,数字型一定不要使用’’;
20、大小写规范统一,变量绑定统一,避免重复编译;
21、不允许使用*=、=*等连接符号,SQL2005、2008不再支持;
22、除非做复制表的操作,其他不允许使用select * 语句;
23、不允许使用count(*)来判断是否存在记录,请使用exists或top 1;
24、不允许使用count(*)来统计表记录行数,请使用count(1);