您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页(完整)SQL.Server命名规范_V1

(完整)SQL.Server命名规范_V1

来源:爱go旅游网
(完整)SQL.Server命名规范_V1

SQL Server命名规范

1.命名协定

1。1表和视图命名规则

1,T_HistoryMsgInfo T_开头标识实体

HistoryMsgInfo为数据表的业务,在我们的库中有如下几种 首字母大写,后面小写

前缀和表含义之间以‘_'连接

2,M_HistoryMsgInfo M_开头标识内存表

HistoryMsgInfo为数据表的业务 首字母大写,后面小写

前缀和表含义之间以‘_’连接

3,V_HistoryMsgInfo

V_开头标识视图

HistoryMsgInfo为数据表的业务,在我们的库中有如下几种 首字母大写,后面小写

前缀和表含义之间以‘_'连接

1。2 列名

1,列名命名规则和表名一样不过不用加下划线

如:MobilePhone, MsgContent 2,简写要都大写,尽量简单易懂,

如:ID 即编号

1.3 存储过程命名

存储过程命名包括不要使用特殊的字符,大写首词,不要使用组名(比如,myProc1),不要使用系统保留的“sp_”前缀(比如可以使用up_),使用文字数据式字符,为了使存储过程名字更有意义, 下面是可选的命名规则,使用“业务”+“动作”+“对象”的方式:

PR_Add_HistoryMsgInfo -—插入类型

1

(完整)SQL.Server命名规范_V1

PR_Get_HistoryMsgInfo PR_Del_HistoryMsgInfo PR_Up_HistoryMsgInfo

—-查询类型 -—删除类型 —-更新类型

1。4 触发器命名

触发器命名应该遵从以下的协定: TR+ { Ins | Upd | Del}+表名

Ins标识此触发器为insert触发器,UPD标识此触发器为update触发器,同理DEL被用来标识delete触发器: 触发器示例:

TR_Add_Customer TR_Del_ProductCode TR_Up_BusinessUnit

1.5 索引命名

索引的命名应该在表空间内唯一,当查看执行计划时可以有效的对索引进行识别。. [IX][类型(U标识Unique,C标识Clustered)][列名(s)]

当对单列进行索引时,你可能需要使用列的全名. 当对多列进行索引时,要使用你所能想到的最优的缩写. 当对一个表的所有列进行索引时,使用

ALL单词.

在多列名中使用下划线以增加可读性。 不要为索引加上序列号

例如:

IXUC_SalesId (clustered unique) IXU_SalesDate (unique)

IX_SalesId_MonId_QtrId_WkId (composite index) IX_MonId_YrId (composite index)

2

(完整)SQL.Server命名规范_V1

IXC_SalesId (clustered not unique)

1。6 主键和外键命名

主键:对主键进行命名应该遵从以下标准: PK_表名 例如,主键名 PK_Customer

外键:对外键进行命名时应该遵从以下标准: FK_ParentTableName_ChildTableName 外键名字示例:

FK_Country_Customer FK_Customer_Sales

1.7 Check约束命名

Check约束的命名遵从以下的约定: CK{数字}_表名

数字被用来区别同一表中的其它Check约束。 Check约束命名示例: CK1_Customer

1。8 Job的命名

Job命名使用以下方式,其中在” Job名”中要标识出此JOB的功能: Job_[应用系统名_][数据库名_]Job名/ [storce procedure名] For Example: Job_IM_IMDB_backup

3

(完整)SQL.Server命名规范_V1

1.9 用户自定义函数命名

满足

NESE命名的基本原则

fn来标识

用户定义的函数使用

名字中应包括“对象”+“动作”的方式 For example:

Fn_IM_CustomerGet(IM 标识itemmaintain系统使用)

2.SQL Server代码规范 2。1 对象创建脚本

使用数据库(USE)

要在SQL Server源文件使用USE 数据库名语句。 删除对象:

IF Exists语句应该在Drop 对象语句之前执行: IF object_id(‘tablename’) IS NOT NULL DROP TABLE TableName

2.2 数据库更改脚本

当在产品服务器上对数据库进行更改时,要非常小心和注意。这会避免产品服务库发生丢失数据或者停止服务等灾难的发生。

这个脚本应该是可以对数据库的对象进行判断的,比如,如果一个对象已经存在,那应该成功结束,而不是把此对象删除,因为此对象可能已经包括数据。比如表,如果要删除一个已经存在的表,则也删除了表中的数据。 当表或者视图重新被创建时,也要重新创建授权(owner权限除外)。

任何时候,当表被创建或者被重新创建时,确认所有的依靠关系,比如PK,FK,索引,触发器,默认值和视图都应该对重新创建.

当底层表结构更改时,视图都应该被重新创建.这个应该特别被注意,特别是视图是使用如”SELECT * FROM Table”时。

4

(完整)SQL.Server命名规范_V1

2.3 参照完整性

使用ALTER TABLE ADD CONSTRAINT 命令来约束强制参照完整性. 除非要调整数据库间的完整性,否则不要使用触发器来强制参照完整性.

2。3。1 主键

每个表都应该有主健存在。

当需要使用代理关键字来标识行的时候,使用identity列. 此时应该在此列上使用primary约束 我们一般推荐在主键上创建clustered 索引来最小化存储空间和达到性能要求。 PK_表名

2。3。2 外键

在外键的定义中,FK列应该和被参照的PK(Unique)列有相同的数据类型.注意, 在一列上创建FK并不会自动在此列上创建索引。所以我们推荐在FK上手动创建索引以提升性能.

2.4 触发器

触发器可以被用来强制商业规则,在数据库间强制数据完整性. TR_Mas_Resource_Delete

TR_Mas_Resource_Insert TR_Mas_Resource_Update

2。5 局部变量命名标准

这是局部变量的命名标准: @Rows int 标识此语句影响的行数: SELECT @Rows = @@EowCount @Err int 本地变量存储全局变量@@Error的值: SELECT @Err = @@Error 5

(完整)SQL.Server命名规范_V1

@ErrMsg varchar(200) 这个用来存储错误信息。 在 RAISERROR有他的编码示例. @Msg

varchar(200) 被打印出来的message字符串. 6

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务