出处: http://szp930.blog.163.com/blog/static/89688252007106104857647/

版本记录:
当前版本:
作 者:
完成日期:
签 收 人:
文件状态:
[ ] 草稿
[√] 正式发布
[ ] 正在修改
签收日期:
1、 编写目的
使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和
继承。
2、 适用范围
本规范适用于公司范围内所有以SQL SERVER 2000 作为后台数据库的应用系统和项目
开发工作。
3、 对象命名规范
3.1 数据库名
数据库名定义为系统名+_+模块名,
如“yd_df” 表示用电系统的电费处理模块数据库。
数据库名全部采用小写。
3.2 数据库文件
数据文件命名采用数据库名+_+文件类型+[文件序号]+文件后缀,
[文件序号]为1、2、3…9 等数值,当数据库中某一文件类型的文件有多个时加上文
件序号以区别。只有一个时可不加。
第2/8页
文件后缀:主数据文件为.mdf,其它数据文件为.ndf,日志文件为.ldf
文件名全部采用小写。
比如系统名为“yd_df”,则数据库数据文件命名为“yd_df_data.mdf”,日志文件命
名为“yd_df_log.ldf”。
3.3 表
表命名要遵循以下原则:
Ø 采用“系统名+t_+模块名+_+表义名” 格式构成
Ø 若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成
Ø 整个表名的长度不要超过30 个字符
Ø 系统名、模块名均采用小写字符
Ø 模块名或表义名均以其汉语拼音的首字符命名,但常用词也可使用英文单词命名
(如 UserType、UserInfo 等),表义名中汉语拼音均采用小写,且字符间不加分割
符;单词命名的表表义名中单词的首字符大写,其它字符小写,多个单词间也不加
任何分割符,单词全部采用单数形式
Ø 表别名命名规则:取表义名的前3 个字符加最后一个字符。如果存在冲突,适当增
加字符(如取表义名的前4 个字符加最后一个字符等)
Ø 表的命名如
dft_gy_cbap:系统名(电费 df)+t_+模块名(高压 gy)+_+表义名(抄表安排 cbap)
dft_cbbj: 系统名(电费 df)+t_+表义名(抄表标记 cbbj)
Ø 关联表命名为Re_表A_表B,Re 是Relative的缩写,表A 和表B均采用其表义名或
缩写形式。
3.4 属性(列或字段)
属性命名遵循以下原则:
Ø 采用有意义的列名,为实际含义的汉语拼音的首字符,且字符间不加任何分割符。
Ø 属性名前不要加表名等作为前缀。
Ø 属性后不加任何类型标识作为后缀。
Ø 不要使用“ID”作为列名。
Ø 关联字段命名以 “cd+_+关联表的表义名(或缩写)+_+字段名”进行
第3/8页
3.5 主键
Ø 任何表都必须定义主键
Ø 表主键命名为:“pk+_+表名(或缩写)+_+主键标识”
如“pk_YHXX_IDKH”等
3.6 外键
表外键命名为: “fk+_+表名(或缩写)+_主表名(或缩写)+_+主键标识”
如“fk_YHLX_YHXX_idcard”等
3.7 索引
索引的命名为:“表名(或缩写)+_+列名+_idx”。
其中多单词组成的属性列列名取前几个单词首字符,加末单词组成
如yd_kh 表khid 上的index: yd_kh_khid_idx
3.8 Default 标识
由“df+_+<default 标识名>”组成
3.9 Rule 标识
由“ru+_+<Rule 标识名>”组成
3.10 自定义数据类型
自定义数据类型由“ud+_+<自定义数据类型标识>+_+<数据类型>”组成
3.11 触发器
Ø AFTER型触发器
系统名+tr_+<表名>_+<i,u,d的任意组合>
其中i,u,d 分别表示insert、update和delete
Ø INSTEAD OF型触发器
第4/8页
系统名+ti_+<表名>+_+<i,u,d的任意组合>
其中i,u,d 分别表示insert、update和delete
3.12 视图
视图命名以系统名v_+模块名作为前缀,其他命名规则和表的命名类似
3.13 存储过程
存储过程命名由“系统名+sp+_+存储过程标识(缩写)”组成
存储过程标识要以实际含义的汉语拼音的首字符或以动宾形式构成,并用下划线分割各个
组成部分。
如增加代理商的帐户的存储过程为“sfsp_Ins_Agent_Account”。
3.14 函数
函数命名由“系统名+f+_+函数标识”组成
3.15 变量名
Ø 参数变量命名采用“i (o或io)+_+ 名称”形式,前缀i 或o 表输入还是输出参数
Ø 过程变量命名采用“l+_+ 名称”形式
Ø 变量名采用小写,若属于词组形式,用下划线分隔每个单词
3.16 角色
Ø 全部使用小写字符命名
Ø 由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成
如用电系统的查询角色:yd_role_query
3.17 用户
Ø 全部使用小写字符命名
Ø 由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成
如用电系统的管理用户:yd_user_sa
第5/8页
3.18 命名中的其它注意事项
Ø 命名都不得超过30 个字符。变量名长度不要超过29个字符(不包括标识字符@)
Ø 不要在对象名的字符之间留空格
Ø 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突
4、 编码规范
4.1 一般性注释
注释可以包含在批处理中。在触发器、存储过程中包含描述性注释将会大大增加文本
的可读性和可维护性。
4.1.1 注释尽可能详细、全面。
4.1.2 创建每一数据对象前,应具体描述该对象的功能和用途。
4.1.3 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义
的变量(如boolean类型变量),应给出每个值的含义。
4.1.4 注释语法包含两种情况:单行注释、多行注释
单行注释:注释前有两个连字符(--),最后以行尾序列(CR-LF)结束。一般,对变
量、条件子句可以采用该类注释。
多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。
4.1.5 注释应当简洁,同时应描述清晰。
4.2 函数头注释
编写函数文本--如视图、函数、触发器、存储过程以及其他数据对象时,必须为每个
函数增加适当注释。该注释以多行注释为主,主要结构如下:
/************************************************************************
*name : --函数名
*function : --函数功能
*input : --输入参数
*output : --输出参数
*author : --作者
第6/8页
*CreateDate : --创建时间
*UpdateDate : --函数更改信息(包括作者、时间、更改内容等)
*************************************************************************/
CREATE PROCEDURE dfsp_xxx

4.3 大小写约定
SQL语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql 保留字大写。
4.4 代码缩进约定
4.4.1 一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进
4.4.2 where 子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连
接符右对齐。
4.5 多表连接时,使用表的别名来引用列
4.6 常用SQL 语句的编写规范
常用SQL 语句的编写示例如下
4.6.1 CREATE 语句
CREATE TABLE publishers
(
pub_id char(4) NOT NULL --标识
CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED
CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756')
OR pub_id LIKE '99[0-9][0-9]'),
pub_name varchar(40) NULL, --名称
city varchar(20) NULL, --城市
state char(2) NULL, --州
country varchar(30) NULL --国家
DEFAULT('USA')
)
4.6.2 SELECT语句
SELECT <选择列列表>
[ INTO <新表名> ]
FROM <要选择的表名>
第7/8页
[ WHERE <搜索条件> ]
[ GROUP BY <分组条件> ]
[ HAVING <搜索条件> ]
[ ORDER BY <排序规则> [ ASC | DESC ] ]
4.6.3 INSERT语句
INSERT INTO <要插入的表名>
(<列1>, <列2>, .., <列n-1>, <列n>)
VALUES (<列1值>, <列2值>, .., <列n-1值>, <列n值>)
4.6.4 UPDATE语句
UPDATE <要更新的表名>
SET <要更新的列> = <列值>
4.6.5 DELETE语句
DELETE FROM authors
WHERE au_lname = 'McBadden'
4.7 条件执行语句(IF)编写规范
条件执行语句IF…ELSE 按以下格式编写
IF <条件表达式>
BEGIN
<命令行或程序块>
END
[ELSE IF <条件表达式>
BEGIN
<命令行或程序块>
END]
注:<1>上式若BEGIN…END 之间只包含单独一命令行,为使代码紧凑,BEGIN和END边界
也常省略
<2>IF…ELSE 语句可以嵌套,为提高代码的可读性,嵌套层次不应多于5 层。当嵌套
层次太多时应考虑使用CASE 语句。
4.8 条件选择语句(CASE)编写规范
条件选择语句CASE…WHEN 按以下格式编写
CASE <运算式>
WHEN <运算式> THEN <运算式>

第8/8页
WHEN <运算式> THEN <运算式>
[ELSE <运算式>]
END

CASE
WHEN <条件表达式> THEN <运算式>

WHEN <条件表达式> THEN <运算式>
[ELSE <运算式>]
END
4.9 循环执行语句(WHILE)编写规范
循环执行语句WHILE…CONTINUE…BREAK按以下格式编写
WHILE <条件表达式>
BEGIN
<命令行或程序块>
[BREAK]
[CONTINUE]

<命令行或程序块>
END

本文出自: CSDN技术中心 数据库对象命名规范

SQL SERVER数据库命名编码规范相关推荐

  1. Oracle数据库命名编码规范

    ORACLE数据库命名编码规范 版本记录: 当前版本: 作 者: 完成日期: 签 收 人: 文件状态: [ ] 草稿 [√] 正式发布 [ ] 正在修改 签收日期: 1. 编写目的 使用统一的命名和编 ...

  2. [转]SQL Server 数据库规范

    SQL Server 数据库规范 一. 命名规范 常用对象命名规范,使用帕斯卡命名法(Pascal,单词首字母大写),统一使用英文. 1. 表.英文单数名词,尽量写完整单词名称一般不超过3个英文单词都 ...

  3. SQL Server数据库重命名、数据导出等若干问题

    第一个问题是重命名数据库问题:在企业管理器中是无法直接对数据库重命名的,只能在查询分析器中操作   create proc killspid (@dbname varchar(20))        ...

  4. 数据库附加出错显示服务器,SQL Server数据库附加失败的解决办法

    SQL Server数据库附加失败的解决办法 本文为大家分享了SQL Server数据库附加失败的具体解决方法,供大家参考,具体内容如下 1.错误3415 问题:附加数据库的时候,发现总是附加失败,查 ...

  5. Serverless 解惑——函数计算如何访问 SQL Server 数据库

    函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务 ...

  6. 5、SQL Server数据库、T-SQL

    SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...

  7. 使用PowerShell和Windows任务计划程序备份Linux SQL Server数据库

    This article is an in-depth guide on how PowerShell can be used to maintain and manage SQL backup on ...

  8. SQL Server数据库学习总结及T-SQL语法使用实战

    SQL Server数据库及T-SQL实战 声明 名词解释 SQL Server数据库 安装sql server 数据库中的三种完整性 SQL Server数据库基本操作 创建数据库 指定多个数据库文 ...

  9. 用友U8的SQL SERVER 数据库结构说明表

    用友U8的SQL SERVER 数据库结构说明表       在帐套中的两个表,一个表是RPT_GRPDEF,存放帐套中重要的表名及相关说明:另一个是RPT_ITMDEF,存放的是主要表中的相关字段说 ...

最新文章

  1. react native 常用学习或查资料网址
  2. 进击谷歌:多线程下程序执行顺序怎么稳定不乱?
  3. STL中heap算法(堆算法)
  4. 结构型模式之Decorator模式
  5. iOS9 Search API 之 Spotlight
  6. hdu 4850 字符串构造---欧拉回路构造序列 递归+非递归实现
  7. Linux启动redis提示 /var/run/redis_6379.pid exists, process is already running or crashed
  8. Tiled 瓦片地图
  9. 为什么python提示没有clock_python – 为什么time.clock比time.time给出更长的时间?
  10. dategurd oracle_Oracle之11g DataGuard
  11. html设置边框dw,dreamweaver
  12. imgaug: 一个很有用的图像数据增强库
  13. 《变革中的思索》连载九:放飞的爱;母亲和我
  14. HttpUtil 工具类
  15. linux以及网络协议
  16. android 强制横屏布局,Activity强制横竖屏和全屏的方法
  17. Hyperledger/FireFly
  18. sqlserver pivot 动态行转列且一行转多列的解决方案
  19. Linux驱动开发: 杂项字符设备
  20. 《MINECRAFT我的世界 新手完全攻略(第3版)》一1.1 注册与下载

热门文章

  1. 字节跳动核心竞争力到底是什么?
  2. 磁场变化会影响计算机吗,磁场会影响电脑正常运行吗
  3. 《静态时序分析实用方法》第七章翻译
  4. 【复杂网络】自学笔记整理
  5. B.FRIENDit壁虎忍者GC03电竞椅,坐的舒服才能心无旁骛!
  6. windows配置OpenGL(VS C++版)
  7. 云思智学获得2021年度“育见美好·机构创新服务奖”
  8. 双减之后,体育培训升温,如何为孩子选择合适的体育项目?
  9. 一文读懂隐私公链Findora生态布局
  10. 测试脂肪的软件叫,智能健康监测app