SQL SERVER数据库脚本开发规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL SERVER数据库脚本开发规范
修订历史记录
版本改版日期改版说明*作者备注
V0.92010-8-17C创建稿Simon Cheng
V1.02010-8-31A追加何根华
V1.02010-8-31A追加王永庚
注:改版说明中填写C-创建,A-追加,M-修改,D-删除,R-评审
目录
一、命名规范 (4)
1)命名标志法 (4)
2)一组相关表的命名 (4)
3)存储过程命名 (4)
4)禁止使用触发器命名, (4)
5)索引命名 (4)
6)主键 (4)
7)外键 (4)
8)引用字段命名 (4)
9)缺省值 (4)
10)禁止使用空格 (4)
11)数据库保留字 (4)
二、书写格式 (5)
1)SELECT语句 (5)
2)数据库对象引用 (5)
3)不要拼SQL语句 (5)
4)明确写出关联方式(不要用旧的书写方式) (5)
5)SQL语句缩进方式 (5)
6)SQL保留字要大写 (6)
7)不使用系统前缀 (6)
8)注释的重要性,注释是必须的 (6)
10)注释的格式 (6)
11)过多使用GOTO语句会使得代码可读性降低 (6)
三、性能相关 (6)
1)尽量用主键 (6)
2)尽量避免使用游标Cursors (6)
3)SET NOCOUNT ON语句 (7)
4)模糊查询Like语句 (7)
5)禁止在Where子句关联字段上使用函数 (7)
6)Filtered Index可以提高查询性能 (7)
7)尽量不用临时表 (7)
8)WHERE子句中不用“不等于号” (8)
9)及时检查global变量@@ERROR (8)
10)Declare语句 (8)
11)SET语句 (8)
12)尽可能不使用Cross Join (8)
13)尽可能不使用集合返回 (8)
14)数据用多少抓多少 (8)
15)视图使用 (8)
16)尽可能不使用NText,Text,Image类型的字段 (8)
17)静态SQL语句 (9)
18)查询结果中尽可能减少Null值的出现 (9)
19)Output Param参数与DataSet (9)
20)有效的Indexes是提高数据性能的最好办法 (9)
21)SQL语句的性能需要检查 (9)
四、索引相关 (9)
1)原则上每个表必须建立一个主键和一个聚集索引 (9)
2)聚集索引 (9)
3)索引不是越多越好 (9)
4)索引经常建立的字段 (9)
5)不建议使用Distinct (9)
6)覆盖索引 (9)
五、死锁相关 (10)
1)使用NOLOCK提示查询优化器 (10)
2)访问相关的Tables循序宜相同 (10)
3)Transaction Scope尽可能短 (10)
4)在Transaction Scope中涉及到数据修改量,尽可能小 (10)
5)尽可能低的设置锁,以及隔离的级别 (10)
六、其他约束 (10)
1)每个表都应该有主键字段 (10)
2)有Default Value限制的字段不允许设置为可以为空(Nullable) (10)
3)在相关表存在的DataBase下创建存储过程和函数 (10)
4)SQL归档文件格式 (10)
5)Constraint创建级别 (11)
6)带INSERT的SELECT语句 (11)
一、命名规范
1)命名标志法
用Pascal标志法,给数据库对象命名,Tables,Views,Store Procedures。例如:Contracts;
ContactPhones
2)一组相关表的命名
如果有一组相关的表,需要加前缀。以下划线“_”分割。例如:
Products_USA
Products_India
Products_Mexico
3)存储过程命名
[GroupName_]
这里的Action如:Get,Delete,Update,Write,Archive,Erase等动词。
例如:
ARP_GetStockProcess;
GetOrgUsers
注:GroupName见附件
4)禁止使用触发器命名,
5)索引命名
IX_
IX_UserDetails_UserID。
6)主键
PK_
7)外键
FK_
FK_UserDetails_Emails。
8)引用字段命名
一个表如有引用字段,指有外键的列,该字段名格式为:
9)缺省值
DF_
DF_UserDetails_UserName。
10)禁止使用空格
在数据库对象命名时,禁止使用空格。
11)数据库保留字