MSSQLServer命名及编码规范
数据库开发规范(SQL_SERVER篇)
数据库开发规范(SQL_SERVER篇)数据库开发规范(SQL SERVER篇)目录第一章命名规范 (4)1.命名标志法 (4)2.数据库命名 (4)3.数据库月份库、数据表日分库命名规则 (4)4.分段数据库分库命名规则 (4)5.分段分日期数据库分库命名规则 (4)6.表的命名 (5)7.字段命名 (5)8.存储过程命名 (5)9.触发器命名, (6)10.索引命名 (6)11.主键 (6)12.外键 (6)13.缺省值 (6)15.函数的命名 (6)16.其他数据库对象命名规则 (6)17.其他数据库可编程性对象命名 (6)18.数据库保留字 (6)19.禁止使用空格 (6)第二章常用数据类型 (7)第三章数据库设计规范 (9)1.三范式 (9)2.适当的冗余 (9)3.主键 (9)4.索引 (9)5.主键与聚集索引的关系 (10)第四章存储过程编写规范 (11)1.注释 (11)2.书写规范 (12)3.性能相关 (12)4.尽量使用索引 (13)5.事务和锁 (14)6.其他注意事项 (14)7.注意临时表和表变量的用法 (14)8.注意子查询的用法 (14)9.常用写法 (16)9.1. XML解析 (16)9.2.检查表是否有数据 (16)9.3.检查变量是否为空或为’’ (16)9.4.动态SQL (16)9.5.建表 (17)9.6.建索引 (17)9.7.建用户 (17)9.8.建全文索引 (17)9.9.建链接服务器 (18)9.10. SERVICE BROKER (18)9.11.分区 (19)第一章命名规范1. 命名标志法使用下面的三种大写标识符约定。
Pascal 大小写将标识符的首字母和后面连接的每个单词的首字母都大写。
可以对三字符或更多字符的标识符使用Pascal 大小写。
例如:BackColorCamel 大小写标识符的首字母小写,而每个后面连接的单词的首字母都大写。
sql server备份语句命名规则
SQL Server备份是数据库管理中非常重要的一环,正确的备份可以保障数据的安全性,而命名规则则可以提高备份文件的管理和识别效率。
下面是SQL Server备份语句命名规则的一些建议:1. 统一前缀:在命名备份文件时,可以考虑为备份文件统一添加一个前缀,用于标识该文件是SQL Server的备份文件。
比如可以使用“backup_”作为前缀,这样命名的文件可以清晰地表明其用途。
2. 使用日期标识:在备份文件的命名中,可以考虑添加日期标识,以便于管理和识别。
可以使用年月日作为日期标识的格式,比如“xxx”,这样可以清晰地知道该备份文件是在哪一天生成的。
3. 添加数据库名:在备份文件的命名中,可以考虑添加数据库名的信息,这样可以更方便地辨识备份文件所属的数据库。
可以使用“db_name”来标识数据库名,比如“db_name_backup_xxx”。
4. 区分全备和差异备份:对于全备份和差异备份的文件,可以考虑在命名中加以区分。
可以使用“full”和“diff”来标识全备份和差异备份,比如“db_name_full_backup_xxx”和“db_name_diff_backup_xxx”。
5. 文件扩展名:对于备份文件的扩展名,可以使用“.bak”来标识SQL Server的备份文件。
总结:使用以上建议的命名规则,可以让SQL Server备份文件的命名更加清晰和规范,提高备份文件的管理和识别效率,从而更好地保障数据库的安全性。
希望以上内容对您有所帮助,如果有任何疑问或需要进一步了解,请随时与我们通联。
在SQL Server数据库管理中,备份是一项至关重要的工作。
正确的备份可以保障数据的安全性和完整性,并且在意外情况下可以迅速地恢复数据。
然而,仅仅进行备份还不够,对备份文件的命名规则也至关重要。
一个良好的命名规则可以使备份文件更易于管理和识别,特别是在处理大规模数据库的情况下。
下面将从更多的细节继续探讨SQL Server备份语句命名规则的相关内容。
SQL Server 的命名规则
SQL Server 的命名规则为了提供完善的数据库管理机制,SQL Server 设计了严格的命名规则。
在创建或引用数据库实体,如表、索引、约束等时,必须遵守SQL Server 的命名规则,否则有可能发生一些难以预料和检查的错误。
本文将讲述:标识符的分类和格式规定;数据库对象的命名规定与使用原则。
∙标识符分类SQL Server的所有对象,包括服务器、数据库以及数据库对象,如表、视图、列、索引、触发器、存储过程、规则、默认值和约束等都可以有一个标识符。
对绝大多数对象来说,标识符是必不可少的,但对某些对象如约束来说,是否规定标识符是可选的。
对象的标识符一般在创建对象时定义,作为引用对象的工具使用。
例如下面的SQL语句:Create table student(id int primary key,name varchar(20))这个例子创建了一个表格,表格的名字是一个标识符:student;表格中定义了两列,列的名字分别是id,name,他们都是合法的标识符。
这个例子还定义另外一个未命名的主键约束。
SQL Server一共定义了两种类型的标识符:规则标识符(Regular identifier)和界定标识符(Delimited identifier)。
∙规则标识符规则标识符严格遵守标识符有关格式的规定。
所以在T-SQL语句中凡是规则标识符都不必使用界定符,如[]和‘’,来进行界定。
如上述例子中使用的表名student 就是一个规则标识符,在student上不必添加界定符。
∙界定标识符界定标识符是那些使用了如[]和‘’等界定符号来进行位置限定的标识符,使用了界定标识符,既可以遵守标识符命名规则,也可以不遵守标识符命名规则。
Select * from [student] 是要从student 表格中查询出所有的数据与Select * from student 等效。
为什么呢?因为在“[]”中的标识符遵守标识符命名规则,“[]”被忽略不计。
SQL.Server命名规范_V1
SQL.Server命名规范_V1SQL Server命名规范1.命名协定1.1表和视图命名规则1,T_HistoryMsgInfoT_开头标识实体HistoryMsgInfo为数据表的业务,在我们的库中有如下几种首字母大写,后面小写前缀和表含义之间以‘_’连接2,M_HistoryMsgInfoM_开头标识内存表HistoryMsgInfo为数据表的业务首字母大写,后面小写前缀和表含义之间以‘_’连接3,V_HistoryMsgInfoV_开头标识视图HistoryMsgInfo为数据表的业务,在我们的库中有如下几种首字母大写,后面小写前缀和表含义之间以‘_’连接1.2 列名1,列名命名规则和表名一样不过不用加下划线如:MobilePhone,MsgContent2,简写要都大写,尽量简单易懂,如:ID 即编号1.3 存储过程命名存储过程命名包括不要使用特殊的字符,大写首词,不要使用组名(比如,myProc1),不要使用系统保留的“sp_”前缀(比如可以使用up_),使用文字数据式字符,为了使存储过程名字更有意义,下面是可选的命名规则,使用“业务”+“动作”+“对象”的方式:PR_Add_HistoryMsgInfo--插入类型PR_Get_HistoryMsgInfo--查询类型PR_Del_HistoryMsgInfo--删除类型PR_Up_HistoryMsgInfo--更新类型1.4 触发器命名触发器命名应该遵从以下的协定:TR+ { Ins | Upd | Del}+表名Ins标识此触发器为insert触发器,UPD标识此触发器为update 触发器,同理DEL被用来标识delete触发器:触发器示例:TR_Add_CustomerTR_Del_ProductCodeTR_Up_BusinessUnit1.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)IXC_SalesId (clustered not unique)1.6 主键和外键命名主键:对主键进行命名应该遵从以下标准:PK_表名例如,主键名PK_Customer外键:对外键进行命名时应该遵从以下标准:FK_ParentTableName_ChildTableName外键名字示例:FK_Country_CustomerFK_Customer_Sales1.7 Check约束命名Check约束的命名遵从以下的约定:CK{数字}_表名数字被用来区别同一表中的其它Check约束. Check约束命名示例:CK1_Customer1.8 Job的命名Job命名使用以下方式,其中在” Job名”中要标识出此JOB的功能: Job_[应用系统名_][数据库名_]Job名/ [storce procedure名] For Example:Job_IM_IMDB_backup1.9 用户自定义函数命名满足NESE命名的基本原则用户定义的函数使用fn来标识名字中应包括“对象”+“动作”的方式For example:Fn_IM_CustomerGet(IM 标识itemmaintain系统使用)2.SQL Server代码规范2.1 对象创建脚本使用数据库(USE)要在SQL Server源文件使用USE 数据库名语句。
sqlserver data base name
SQL Server数据库名称一、介绍SQL Server是微软公司开发的关系型数据库管理系统,广泛应用于企业的数据存储和管理中。
在SQL Server中,数据库名称是非常重要的,它是用来标识和区分不同的数据库的。
在本文中,我们将深入探讨SQL Server数据库名称的相关内容。
二、数据库名称的作用1. 标识性:数据库名称是用来唯一标识一个数据库的重要属性,每个数据库都有一个唯一的名称。
2. 区分性:数据库名称可以帮助我们区分不同的数据库,方便管理和使用。
3. 调用性:通过数据库名称,我们可以在SQL Server中方便地调用和操作对应的数据库。
三、数据库名称的命名规范1. 字符限制:数据库名称由1到128个字符组成,可以使用字母、数字和一些特殊符号,但不允许使用空格。
2. 禁止词汇:数据库名称不允许使用一些保留字和关键字,例如“select”、“insert”等。
3. 大小写敏感:SQL Server默认情况下是不区分大小写的,所以数据库名称的大小写是不敏感的,但建议统一使用小写。
4. 唯一性:数据库名称必须是唯一的,同一个SQL Server实例中不能有相同名称的数据库。
四、常见操作1. 创建数据库:在SQL Server中,我们可以使用CREATE DATABASE语句来创建一个新的数据库,并为其指定一个名称。
2. 修改数据库名称:在某些情况下,我们可能需要修改数据库的名称,可以使用ALTER DATABASE语句实现。
3. 删除数据库:如果某个数据库不再需要,我们可以使用DROP DATABASE语句来删除该数据库及其相关数据。
五、注意事项1. 保持简洁:数据库名称应该简洁明了,不宜过长,方便记忆和使用。
2. 规范命名:建议按照一定的规范来命名数据库,例如使用有意义的英文单词或缩写。
3. 不可轻率修改:修改数据库名称可能会影响到已有的程序和应用,需要谨慎操作。
六、总结数据库名称是SQL Server中一个重要的概念,正确的数据库命名可以方便管理和使用数据库。
SQLserver数据库设计及开发规范
LMS项目数据库设计及使用规范在本项目中,数据库的设计和使用必须遵循以下原则:1命名原则1.1约定:Pascal Casing命名方式:1.每一个单词的第一个字母大写,例如:B ank N ame。
2.常用单词缩写三个字母以下字母都大写,例如:SP、PG3.常用单词缩写三个字母以上第一个字母大写,例如:Xml1.2表名和字段规则如下:✓使用英文单词或词组作为表名,不得使用汉语拼音,建立一个中英文对照字典。
✓用名词和名词短语作表名✓不使用复数,除非与数据库保留字冲突✓用Pascal 命名规则✓尽量谨慎地使用缩写✓尽量不要和关键字重合✓不要用任何名前缀(例如U,B)✓数据库对象名称不使用下划线正确的命名,例如:UsersOrderProduct1.3存储过程规则如下:命名规则为up_xxx_StoredProcedureName,up表示User Procedure,用来区分它和系统存储过程,xxx表示子系统的名称,由三个字母构成,各个子系统参见下表,StoredProcedureName 为存储过程含义StoredProcedureName规则如下:✓用动词或动词短语来命名,并带有宾语✓需要符合用Pascal 命名规则。
✓尽量谨慎地使用缩写✓尽量不要和关键字重合✓不要用任何名前缀(例如U,B)✓StoredProcedureName内不使用下划线✓当操作依赖条件时,一般结尾使用By+条件存储过程正确的命名,例如:Up_Usr_InsertUserUp_Usr_SearchUserByUserIDUp_Usr_DeleteUserByUserID1.4视图规则如下:✓视图的命名采用vw ViewName的格式,其中vw前缀表示视图,ViewName部分表示视图的含义。
ViewName规则如下:✓用名词和名词短语,✓不使用复数✓用Pascal 命名规则✓尽量谨慎地使用缩写✓尽量不要和关键字重合✓不要用任何名前缀(例如U,B)✓ViewName中不使用下划线视图正确的命名,例如:vwUservwUserOrdervwTranscation视图错误的命名,例如:UserViewvw_Transcation_View2设计规范2.1规范约定遵守数据的设计规范3NF 规定·表内的每一个值都只能被表达一次。
sqlserver 实例名
SQL Server 实例名一、什么是 SQL Server 实例名SQL Server是由Microsoft开发的关系型数据库管理系统。
每个数据库服务器可以安装并运行多个SQL Server实例,每个实例都有一个唯一的名称称为实例名。
实例名用来标识不同的SQL Server实例。
二、SQL Server 实例名的作用SQL Server实例名在多个方面发挥着重要的作用: 1. 标识实例:SQL Server可以同时运行多个实例,通过不同的实例名可以准确地标识和区分每个实例。
2. 连接数据库:客户端应用程序使用实例名来连接到数据库服务器上的特定实例。
3. 端口定位:每个SQL Server实例都在服务器上监听一个独立的端口,实例名可以帮助客户端确定要连接的实例的端口号。
4. 实例级别配置:每个SQL Server实例都有自己的一套配置和参数设置,实例名帮助服务器区分不同实例的配置。
三、 SQL Server 实例名的命名规则SQL Server实例名的命名规则如下: 1. 仅包含字母、数字和下划线。
2. 必须以字母开头。
3. 长度不能超过16个字符。
4. 区分大小写。
四、 SQL Server 实例名的示例以下是一些常见的SQL Server实例名示例: 1. 默认实例:如果未指定实例名,那么连接的是默认实例,例如:ServerName。
2. 命名实例:如果安装了多个实例,实例名可以是唯一的,例如:ServerName\InstanceName。
3. 集群实例:如果SQL Server部署在一个集群环境中,实例名可以是虚拟名称,例如:VirtualServerName。
五、连接 SQL Server 实例连接 SQL Server 实例的方式取决于实例名的类型: 1. 默认实例:可以使用服务器名称直接连接到默认实例。
2. 命名实例:需要使用[ServerName]\[InstanceName]的格式来连接到命名实例。
sql server 列名命名规则
SQL Server 列名命名规则1. 介绍在使用SQL Server数据库时,对于列名的命名是非常重要的。
良好的列名命名规则可以使数据库的结构清晰、易于理解和维护。
本文将介绍SQL Server列名命名规则,帮助读者了解如何合理地命名列名。
2. 规则和建议在SQL Server中,列名的命名需要遵循一些规则和建议,以下是一些建议和常见规则:2.1 使用描述性的名称为了方便理解,每个列名都应该尽可能使用描述性的名称。
如果某一列存储了用户的尊称信息,可以将该列命名为"UserName",这样可读性更强,不易产生歧义。
2.2 避免使用关键字和保留字在SQL Server中,有一些关键字和保留字是数据库系统保留的,不能作为列名。
在命名列名时需要避免使用这些关键字和保留字,以免发生冲突。
2.3 使用统一的命名规则为了保持数据库结构的统一性,可以约定一套统一的命名规则,并在整个团队或组织中统一执行。
可以约定使用驼峰命名法或下划线分隔法等命名规则。
2.4 使用简单的命名在命名列名时,应尽量避免使用复杂的命名,尽可能简洁明了。
这样不仅能方便理解,还能提高查询和维护效率。
2.5 避免使用特殊字符和空格在列名中应尽量避免使用特殊字符和空格,这样可以减少出错的可能性,也方便在SQL语句中引用。
3. 示例下面通过一个简单的示例来演示如何按照以上规则命名列名:假设我们有一个用户信息表,包括用户ID、用户名、用户芳龄和用户电流新箱等列,那么我们可以按照以下规则来命名列名:- 用户ID:UserId- 用户名:UserName- 用户芳龄:UserAge- 用户电流新箱:UserEm本人l通过以上示例,我们可以看到使用描述性的名称,避免关键字和保留字,使用统一的命名规则,简单明了的命名,避免特殊字符和空格等规则。
4. 总结良好的列名命名规则对于数据库的设计和维护是非常重要的。
在实际开发中,应严格遵循列名命名规则,采用合适的命名规则,使得数据库结构清晰、易于理解和维护。
SQL Server编码规范
文件制修订记录目录1前言 (3)1.1目的 (3)1.2术语 (3)1.3参考文献 (3)2逻辑对象的命名规范 (3)2.1数据库命名 (3)2.2数据库文件及目录 (3)2.3表 (3)2.4字段/域 (4)2.5索引 (4)2.6视图 (4)2.7存储过程 (4)2.8触发器 (4)2.9函数 (4)3可编程性编码规范 (4)3.1可编程性统一规范 (4)3.1.1外部参数 (4)3.1.2内部参数 (5)3.1.3代码编写格式规范 (5)3.2存储过程 (5)3.2.1存储过程格式: (6)3.2.2存储过程标头备注 (6)3.2.3返回值 (6)3.3函数 (6)3.3.1函数格式 (7)3.3.2函数标头备注 (7)3.4触发器 (7)3.4.1触发器格式 (7)3.4.2触发器标头备注 (8)4数据库编程技巧 (8)1前言1.1目的为了统一公司软件开发的设计过程中关于数据库SQL SEREVR设计时的命名规范和具体工作时的编程规范,便于交流和维护,特此收集、整理公司已经积累的技术资料、参考国家规范和标准、修订和编制了本编程规范。
1.2术语暂无。
1.3参考文献版本说明和修改历史2逻辑对象的命名规范2.1数据库命名数据库的命名要求使用与数据库意义相关联的拼音首字母且以“XY”打头,例如:客户资料数据库的命名可以是XYKhzl。
2.2数据库文件及目录数据库文件存放路径:d:\xydata数据库主数据文件命名:DBName_Data_XX.mdf,文件组名称:PRIMARY数据库事务日志文件命名:DBName_log_XX.ldf数据库文件组命名:主文件组 PRIMARY,次文件组 DBName_FileGroup_XX其中:DBName为数据库实际名称XX为从00开始的数字编号2.3表表的命名以业务品种为第一前缀,加下划线(_),业务模块为第二个前缀,其后紧接与表意义相关联的除系统管理库中表的命名可不用业务品种为第一前缀外,其他库中必须使用第一前缀。
SQL数据库命名规则
SQL数据库命名规则SQL Server数据库的标识符在SQL SERVER中标识符共有两种类型:一种是规则标识符(Regular identifer)一种是界定标识符(Delimited identifer)其中,规则标识符严格遵守标识符的有关格式的规定,所以在Transact_SQL中凡是规则运算符都不必使用定界符。
对于不符合标识符格式的标识符要使用界定符[]或‘’。
标识符格式:1、标识符必须是统一码(Unicode)2.0标准中规定的字符,以及其他一些语言字符。
如汉字.2、标识符后的字符可以是(除条件一)“_”、“@”、“#”、“$”及数字。
3、标识符不允许是Transact-SQL的保留字。
4、标识符内不允许有空格和特殊字符。
另外,某些以特殊符号开头的标识符在SQL SERVER 中具有特定的含义。
如以“@”开头的标识符表示这是一个局部变量或是一个函数的参数;以#开头的标识符表示这是一个临时表或是一存储过程;以“##”开头的表示这是一个全局的临时数据库对象;Transact-SQL的全局变量以“@@”开头;标识符最多可以容纳128个字符。
注释注释可以包含在批处理中。
在触发器、存储过程中包含描述性注释将大大增加文本的可读性和可维护性。
本规范建议:1、注释以英文为主。
实际应用中,发现以中文注释的SQL语句版本在英文环境中不可用。
为避免后续版本执行过程中发生某些异常错误,建议使用英文注释。
2、注释尽可能详细、全面。
创建每一数据对象前,应具体描述该对象的功能和用途。
传入参数的含义应该有所说明。
如果取值范围确定,也应该一并说明。
取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。
3、注释语法包含两种情况:单行注释、多行注释单行注释:注释前有两个连字符(--),最后以行尾序列(CR-LF)结束。
一般,对变量、条件子句可以采用该类注释;多行注释:符号/*和*/之间的内容为注释内容。
对某项完整的操作建议使用该类注释;关键字SQL语句(SELECT、INSERT、UPDA TE、DELETE)的关键字可以划分为三类:主关键字、次关键字、一般关键字数据库涉及字符规则采用26个英文字母(区分大小写)和0 -9这十个自然数,加上下划线_组成,共63个字符。
第06章 SQL Server的命名规则
Server的命名规则 SQL Server的命名规则
在SQL Server中,命名规则可以分为两大类,即命名原则 中 命名规则可以分为两大类, 和标识符规则,其中,命名原则是推荐标准。 和标识符规则,其中,命名原则是推荐标准。既然是推 荐性原则,那么用户可以遵循, 荐性原则,那么用户可以遵循,也可以选用别的命名原 甚至创建自己的命名规则。在本章中, 则,甚至创建自己的命名规则。在本章中,将介绍匈牙 利命名法和驼峰法。标识符规则是SQL Server强制用户 利命名法和驼峰法。标识符规则是 强制用户 使用的强制性规则。所谓强制性规则, 使用的强制性规则。所谓强制性规则,是指用户定义的 标识符必须符合标识符规则,否则将会出现错误。 标 Server标识符的命名规则,这里主要介绍 标识符的命名规则, 前面介绍了 标识符的命名规则 创建使用SQL Server标识符命名的表。其实,这种使用 标识符命名的表。 创建使用 标识符命名的表 其实, 标识符命名规则来命名数据库对象是SQL Server推荐的 标识符命名规则来命名数据库对象是 推荐的 具体的SQL Server标识符规则,用户可参见下一节的 标识符规则, 。具体的 标识符规则 内容。 内容。
6.6
小结
本章主要介绍命名规则,包括匈牙利命名法和驼峰法。 本章主要介绍命名规则,包括匈牙利命名法和驼峰法。在衡 量一个合格的DBA、程序员时都有一个重要的考核点, 量一个合格的 、程序员时都有一个重要的考核点, 就是在实际开发中, 就是在实际开发中,对对象命名规则会有很多实体对象 如何区分这些对象是一个十分艰巨的任务。 ,如何区分这些对象是一个十分艰巨的任务。只能通过 合理规则的命名来表述这个对象,在协同开发时, 合理规则的命名来表述这个对象,在协同开发时,让团 队其他成员快速、准确理解这个对象。 队其他成员快速、准确理解这个对象。所以对对象合理 的命名要遵循一定的命名规则。 的命名要遵循一定的命名规则。
SQL+Server命名规范
SQL Server1.命名协定1.1 数据库命名原则及版本控制1.1.1数据库命名原则数据库命名要遵从以下命名原则:表意性原则:数据库命名本着表意性原则,即命名应尽量反映存储/action/view/column的数据内容。
长名原则:很少使用或者不使用缩写,适用于DB命名之外的任一对象数目最少化原则:数据库对象应该尽量满足数据最小化原则,也就是数据库数目,存储过程,视图等数量最小化。
1.1.2 数据库版本控制当由于多个版本的应用系统同时存在或者是其它特殊原因而使用完成相似的功能的对象存在同时存在时,使用版本控制:版本号在对象名的后面加上[_v1]如:Up_IM_DailyUsageStatsUpdate_v2Up_IM_CustomerGetUsingLast Nam e_v21.2 Server/命名实例的命名基于Domain命名, DOMAIN 的粒度,可分为三级,分别是Server级别,Database级别和表的前缀级别。
此为第一级别。
1.ONLINE PRODUCTION SERVERNEWSQLNEWSQL2EHISSQLWAREHOUSE PRODUCTION SERVERS3SQL01S4SQL01S7SQL01S6SQL011.3 数据库命名数据库命名应当遵从上面所提及到的协定,包括没有特殊的字符,使用文字数据字式字符……..,项目代码命名不应该同样被数据库使用.数据库名字应该唯一以避免冲突等.以Domain来标识, 拆分DATABASE,基于大的逻辑范畴,如operation 范畴以及部门类别,另外:其它与部门相关的DATABASE 可以放到相关的SERVER 下。
数据库数目最少化原则数据设置尽可能MERGER原则peration database AND Dept level Database set up rules拆分DATABASE,基于大的逻辑范畴,如operation 范畴以及部门类别其它与部门相关的DATABASE 可以放到相关的SERVER 下。
SQL Server 设计,命名,编码规范
SQL Server 设计,命名,编码规范SQL Server DatabaseDesign, Code and Development Standards1.更改 (3)2.简介 (3)3.开发环境 (4)3.1数据库模型 (4)3.2 Diagrams (4)3.3版本控制 (4)3.4 源码目录结构 (4)4.物理数据库模型&字典 (5)4.1 物理数据模型 (5)4.2 IDEF1X 方法 (6)4.3 物理数据库数据字典 (6)4.4 性能设计 (6)5.命名协定 (7)5.1 数据库命名原则及版本控制 (7)5.1.1数据库命名原则 (7)5.1.2 数据库版本控制 (7)5.2 Server/命名实例的命名 (7)5.3 数据库命名 (8)5.4 数据库对象—表,视图,列名,约束,规则,默认值 (10)5.5 缩写规范 (11)5.6 列名 (11)5.7 存储过程命名 (13)5.8 游标命名 (13)5.9 触发器命名 (14)5.10 索引命名 (14)5.11 主键和外键命名 (14)5.12 Check约束命名 (15)5.13 源文件命名 (15)5.14 Job的命名 (15)5.15 用户自定义函数命名 (16)5.16 用户自定义数据类型命名 (16)5.17 复制命名 (16)6.SQL Server代码规范 (16)6.1 对象创建脚本 (16)6.2 数据库更改脚本 (18)6.3 综合开发实践 (21)6.4 文本文件格式 (22)6.5 使用Return (31)6.6 错误处理 (32)6.6.1 在存储过程和触发器中使用RAISEERROR (33)6.7 Print 语句 (33)6.8 参照完整性 (34)6.8.1 主键 (34)6.8.2 外键 (34)6.9 触发器 (34)6.10 游标 (35)6.11 用户自定义函数 (36)6.12 局部变量命名标准 (37)6.13 返回最后插入的标识值 (37)7.安全 (38)8.事务处理 (39)8.1 编写高效的事务处理代码 (39)8.2 批处理 (39)附录A:最常见的不应该出现的问题 (40)1.更改2.简介数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求数据库设计和开发标准是使Newegg Support Center的数据库系统的设计和开发正式化的标准。
SQL Server编码规范
密级:文档编号:版本号:V1.0SQL Server编码规范XXXX有限公司--------------------------------------------------------------------- XXXX有限公司对本文件资料享受著作权及其它专属权利,未经书面许可,不得将该等文件资料(其全部或任何部分)披露予任何第三方,或进行修改后使用。
文件更改摘要:目录1前言 (1)1.1目的 (1)1.2术语 (1)1.3参考文献 (1)2逻辑对象的命名规范 (1)2.1数据库命名 (1)2.2数据库文件及目录 (1)2.3表 (1)2.4字段/域 (2)2.5索引 (2)2.6视图 (3)2.7存储过程 (3)2.8触发器 (3)2.9函数 (3)3可编程性编码规范 (3)3.1可编程性统一规范 (3)3.1.1外部参数 (3)3.1.2内部参数 (4)3.1.3代码编写格式规范 (4)3.2存储过程 (5)3.2.1存储过程格式: (5)3.2.2存储过程标头备注 (5)3.2.3返回值 (6)3.3函数 (6)3.3.1函数格式 (6)3.3.2函数标头备注 (6)3.4触发器 (7)3.4.1触发器格式 (7)3.4.2触发器标头备注 (7)4数据库编程技巧 (8)S_CD020_SQL Server编码规范V2.11前言1.1目的为了统一公司软件开发的设计过程中关于数据库SQL SEREVR设计时的命名规范和具体工作时的编程规范,便于交流和维护,特此收集、整理公司已经积累的技术资料、参考国家规范和标准、修订和编制了本编程规范。
1.2术语暂无。
1.3参考文献版本说明和修改历史2逻辑对象的命名规范2.1数据库命名数据库的命名要求使用与数据库意义相关联的拼音首字母且以“XY”打头,例如:客户资料数据库的命名可以是XYKhzl。
2.2数据库文件及目录数据库文件存放路径:d:\xydata数据库主数据文件命名:DBName_Data_XX.mdf,文件组名称:PRIMARY数据库事务日志文件命名:DBName_log_XX.ldf数据库文件组命名:主文件组 PRIMARY,次文件组 DBName_FileGroup_XX其中:DBName为数据库实际名称XX为从00开始的数字编号2.3表表的命名以业务品种为第一前缀,加下划线(_),业务模块为第二个前缀,其后紧接与表意义相关联的汉语拼音首字母,加下划线(_),存储性质为后缀除系统管理库中表的命名可不用业务品种为第一前缀外,其他库中必须使用第一前缀。
SQLServer数据库设计命名规范
SQLServer数据库设计规范1 相关的设计规范1.1 采用有意义的字段名尽可能地把字段描述的清楚些。
当然,也别做过头了,比如CustomerShippingAddressStreetLine1 虽然很富有说明性,但没人愿意键入这么长的名字,具体尺度就在你的把握中。
每个单词的首个字母要求用大写!!!不要用下划线来连接每个单词。
1.2 遵守3NF 标准3NF 规定:A.表内的每一个值都只能被表达一次。
B.表内的每一行都应该被唯一的标识(有唯一键)。
C.表内不应该存储依赖于其他键的非键信息。
1.3 小心保留词要保证你的字段名没有保留词、数据库系统或者常用访问方法冲突,比如,写的一个ODBC 连接程序里有个表,其中就用了DESC 作为说明字段名。
后果可想而知!DESC 是DESCENDING 缩写后的保留词。
表里的一个SELECT *语句倒是能用,但我得到的却是一大堆毫无用处的信息。
1.4 保持字段名和类型的一致性在命名字段并为其指定数据类型的时候一定要保证一致性。
假如字段在某个表中叫做“AgreeMentNumber”,你就别在另一个表里把名字改成“ref1”。
假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。
记住,你干完自己的活了,其他人还要用你的数据库呢。
2 命名规则:2.1 数据库(Database)的定义数据库名称= 数据库内容标识(首字大写)2.2 表(Table)的定义命名应尽量反映存储的数据内容。
表名前缀:以该表及与该表相关联的一系列表的内容而得到一个代表统一的标识表名称= 表名前缀+ 表内容标识(首字大写)如ClientInfo相关联的一系的表以ci作为前缀,即有表名:ciHistory,ciContact,ciBusiness2.3 字段(Field)的定义字段是数据库中的用途最广泛的,它的类型非常多,所以必须加类型前缀来标示它的类型。
字段名称= 字段类型前缀+ 字段内容标识(首字大写)2.4 视图名视图的名称= "vw" + 视图内容标识(首字大写)如vUserPerm2.5 触发器名触发类型触发标识-----------------------------------Insert iDelete dUpdate u触发名= "tr" + 触发标识+ 相应的表名如:triClient,trdClient。
Microsoft SQL Server数据库设计规范
表设计原则:
如果你发现自己Hale Waihona Puke 重复输入数据,请创建新表和新的关系。
每个表中都可以考虑添加的3个有用的字段
· RecoredID ,记录唯一编号,不建议采用业务数据作为记录的唯一编号
数值类型
如果表示金额货币建议用money型数据,如果表示科学记数建议用numeric数据类型。
记录标识
一般采用int类型标识唯一一行记录。此列是否采用自动累增视具体情况而定。如果需要在保存之前得到此标记
。如果一个表记录数过多,而自己如何建立索引不太熟悉,可以考虑在查询分析器里索引优化向导得到SQLServer
提供的索引建议。
。你可以在分析器里执行指定语句的查询执行计划,根据执行计划显示的查询成本来调整相应的查询语句。
存储过程前缀:udp(User define procedure)表示用户定义存储过程,用它以区分出系统存储过程(sp),
如果我们写的是系统类存储过程请写usp前缀。
自定义函数前缀:udf(User define function)表示用户定义函数。
注释内容:
系统操作类的语句一般无须注释,如启动事务,关闭字符显示等语句。其他业务性的操作都应该写清楚注释。
系统操作类一般都写在语句开始和最后,它与具体业务语句用分隔符分开!
以下是一个例子:
SET QUOTED_IDENTIFIER ON
select @ServerName=vcComputer,@UserName=vcUserName,@Password=vcPassword,@DBName=vcDataBase
中国移动MSSQL数据库安全配置规范V1.0
中国移动公司--M S S Q L S e r v e r数据库安全配置规范S p e c i f i c a t i o n f o r M S S Q L S e r v e rD a t a b a s e C o n f i g u r a t i o n U s e d i n C h i n aM o b i l e版本:1.0.0X X X X-X X-X X发布X X X X-X X-X X实施中国移动通信集团公司网络部目录1概述 (4)1.1适用范围 (4)1.2内部适用性说明 (4)1.3外部引用说明 (5)1.4术语和定义 (5)1.5符号和缩略语 (5)2MS SQL S E RVER安全配置要求 (6)2.1账号 (6)2.2口令 (8)2.3日志 (9)2.4其他 (10)前言为了贯彻安全三同步的要求,在设备选型、入网测试、工程验收以及运行维护等环节,明确并落实安全功能和配置要求。
有限公司组织部分省公司编制了中国移动设备安全功能和配置系列规范。
本系列规范可作为编制设备技术规范、设备入网测试规范,工程验收手册,局数据模板等文档的依据。
本规范是该系列规范之一,明确了中国移动各类型设备所需满足的通用安全功能和配置要求,并作为本系列其他规范的编制基础。
本标准起草单位:中国移动通信有限公司网络部、中国移动通信集团四川分公司。
本标准解释单位:同提出单位本标准主要起草人:刘羿、张岍山、周智、曹一生、陈敏时。
1概述1.1适用范围本规范适用于中国移动通信网、业务系统和支撑系统的MS SQL SERVER数据库。
本规范明确了MS SQL SERVER数据库安全配置方面的基本要求。
1.2内部适用性说明本规范是在《中国移动设备通用设备安全功能和配置规范》(以下简称《通用规范》)各项设备配置要求的基础上,提出的MS SQL SERVER数据库安全配置规范。
以下分项列出本规范对《通用规范》设备配置要求的修订情况。
MSSQLServer命名及编码规范
MS SQL Server命名及编码规范文件类型:项目管理(标准/规范/模板)文件编号:版本: 1.0A 版权声明本文件版权属于XXXXX,保留所有权利。
本文件中包含的信息属于XXXXX的资产及机密,文件中的任何部分未经授权不得以任何形式复制(包括复印及以电子文本的形式传播)。
B 版本历史C 分发范围本文档分发范围包括:XXXXXX管理人员、开发人员、项目管理人员。
1编写目的编写本文档的目的是在使用MS SQL Server数据库的过程中,使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。
2适用范围本规范适用于公司范围内所有以SQL SERVER 2000/2005 作为后台数据库的应用系统和项目开发工作。
3对象命名规范3.1 通用规则Pascal 规则每个单词开头的字母大写(如: TestCounter)。
Camel 规则除了第一个单词外的其他单词的开头字母大写. 如:testCounter。
Upper 规则仅用于被广泛认可的缩写命名(一般不超过四个字符,超过四个字符长度应该应用Pascal规则)。
如:OLAP、PIN。
3.2 数据库名数据库名定义为系统名_模块名,如“crm_customer”表示CRM系统的cust omer处理模块数据库。
数据库名全部采用小写。
3.3 数据库文件数据文件命名采用数据库名+_+文件类型+[文件序号]+文件后缀,[文件序号]为1、2、3…9 等数值,当数据库中某一文件类型的文件有多个时加上文件序号以区别。
只有一个时可不加。
文件后缀:主数据文件为.mdf,其它数据文件为.ndf,日志文件为.ldf。
文件名全部采用小写。
比如系统名为“crm_customer”,则数据库数据文件命名为“crm_customer_ data.mdf”,日志文件命名为“crm_customer_log.ldf”。
3.4 表表命名要遵循以下原则:直接使用表义名,不使用任何前缀。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MS SQL Server命名及编码规范文件类型:项目管理(标准/规范/模板)文件编号:版本: 1.0A 版权声明本文件版权属于XXXXX,保留所有权利。
本文件中包含的信息属于XXXXX的资产及机密,文件中的任何部分未经授权不得以任何形式复制(包括复印及以电子文本的形式传播)。
B 版本历史C 分发范围本文档分发范围包括:XXXXXX管理人员、开发人员、项目管理人员。
1编写目的编写本文档的目的是在使用MS SQL Server数据库的过程中,使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。
2适用范围本规范适用于公司范围内所有以SQL SERVER 2000/2005 作为后台数据库的应用系统和项目开发工作。
3对象命名规范3.1 通用规则Pascal 规则每个单词开头的字母大写(如: TestCounter)。
Camel 规则除了第一个单词外的其他单词的开头字母大写. 如:testCounter。
Upper 规则仅用于被广泛认可的缩写命名(一般不超过四个字符,超过四个字符长度应该应用Pascal规则)。
如:OLAP、PIN。
3.2 数据库名数据库名定义为系统名_模块名,如“crm_customer”表示CRM系统的cust omer处理模块数据库。
数据库名全部采用小写。
3.3 数据库文件数据文件命名采用数据库名+_+文件类型+[文件序号]+文件后缀,[文件序号]为1、2、3…9 等数值,当数据库中某一文件类型的文件有多个时加上文件序号以区别。
只有一个时可不加。
文件后缀:主数据文件为.mdf,其它数据文件为.ndf,日志文件为.ldf。
文件名全部采用小写。
比如系统名为“crm_customer”,则数据库数据文件命名为“crm_customer_ data.mdf”,日志文件命名为“crm_customer_log.ldf”。
3.4 表表命名要遵循以下原则:直接使用表义名,不使用任何前缀。
整个表名的长度不要超过30 个字符。
表义名需遵循[3.1]表述的规则,尽量以英文命名,也可使用汉语拼音的首字符命名。
表义名中汉语拼音均采用小写,且字符间不加分割符;单词命名的表义名采用名词性质的单词,各单词的首字符大写,其它字符小写。
多个单词间不加任何分割符,如果整个单词太长,则使用完整的第一音节或经过仔细选择的缩写词。
名词全部采用单数形式。
表别名取表义名的前3 个字符加最后一个字符。
如果存在冲突,适当增加字符(如取表义名的前4 个字符加最后一个字符等)。
关联表命名为“Re_表A_表B”形式,Re 是Relative的缩写,表A 和表B均采用其表义名或缩写形式。
3.5 属性(列或字段)属性命名遵循以下原则:采用有意义的列名,尽量使用英文,或有实际含义的汉语拼音的首字符,且字符间不加任何分割符。
如果字段为bool型,则使用"IsShow", "IsValid", "HasPassed", "Ha sExamined", "IgnoreCase"这种形式表示。
如果字段位DateTime型,切且默认值是取系统时间,一律命名位:Che ckDate。
属性名前不要加表名等作为前缀。
属性后不加任何类型标识作为后缀。
关联字段命名以“cd+_+关联表的表义名(或缩写)+_+字段名”进行3.6 主键任何表都必须定义与业务无关的自增形式的键值,一律命名为ID。
表主键命名为“表名+ID”,如Customer表的主键命名为CustomerID。
3.7 外键外键名称为主表名+对应列名,如在表Department中,其字段有:ID, DepartmentName在表UserInfo中,其字段有:UserId,UserName,DepartmentsID 其中,DepartmentID为外键,参照Depertment表的ID字段。
3.8 索引索引的命名为:“idx_表名(或缩写)+_+列名”。
其中多单词组成的属性列列名取前几个单词首字符,加末单词组成,如Cus tomer表中字段LastName上的索引可命名为idx_Customer_LastName。
3.9 Default 标识由“df+_+<default 标识名>”组成。
3.10 Rule 标识由“ru+_+<Rule 标识名>”组成。
3.11 自定义数据类型自定义数据类型由“ud+_+<自定义数据类型标识>+_+<数据类型>”组成。
3.12 触发器AFTER型触发器系统名+tr_+<表名>_+<i,u,d的任意组合>,其中i,u,d 分别表示insert、update和delete。
INSTEAD OF型触发器系统名+ti_+<表名>+_+<i,u,d的任意组合>,其中i,u,d 分别表示inser t、update和delete。
3.13 视图视图命名由v_+表名+描述,如v_Customer_Top100。
3.14 存储过程存储过程命名由“usp+_+存储过程标识”组成。
存储过程标识要以实际含义的英语单词或以动宾的形式构成,并用下划线分割各个组成部分。
对于在某个表上进行操作的存储过程可以命名为“usp_表名_操作”方式,如在Customer表上进行插入操作的存储过程命名为usp_Customer _Insert。
3.15 函数函数命名由“ufn_+函数标识”组成。
3.16 变量名变量命名采用Camel规则,使用有明确说明性的名字。
3.17 角色全部使用小写字符命名。
由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成如用电系统的查询角色:yd_role_query。
3.18 用户全部使用小写字符命名。
由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成。
如用电系统的管理用户:yd_user_sa。
3.19 命名中的其它注意事项命名都不得超过30 个字符,变量名长度不要超过29个字符(不包括标识字符@)。
不要在对象名的字符之间留空格。
要保证命名没有和保留词、数据库系统或者常用访问方法冲突。
4编码规范4.1 一般性注释注释可以包含在批处理中。
在触发器、存储过程中包含描述性注释将会大大增加文本的可读性和可维护性。
注释尽可能详细、全面。
创建每一数据对象前,应具体描述该对象的功能和用途。
传入参数的含义应该有所说明。
如果取值范围确定,也应该一并说明。
取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。
注释语法包含两种情况:单行注释、多行注释。
单行注释:注释前有两个连字符(--),最后以行尾序列(CR-LF)结束。
一般,对变量、条件子句可以采用该类注释。
多行注释:符号/*和*/之间的内容为注释内容。
对某项完整的操作建议使用该类注释。
注释应当简洁,同时应描述清晰。
4.2 函数头注释编写函数文本--如视图、函数、触发器、存储过程以及其他数据对象时,必须为每个函数增加适当注释。
该注释以多行注释为主,主要结构如下:/**************************************************************** *********name : --函数名*function : --函数功能*input : --输入参数*output : --输出参数*author : --作者*CreatedDate : --创建时间*UpdateDate : --函数更改信息(包括作者、时间、更改内容等)***************************************************************** ********/CREATE PROCEDURE dfsp_xxx4.3 大小写约定SQL语句的所有表名、字段名全部小写,系统保留字、内置函数名、sql 保留字大写。
4.4 代码缩进约定一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进。
where 子句书写时,每个条件占一行,语句另起一行时,以保留字或者连接符开始,连接符右对齐。
4.5 多表连接约定多表连接时,使用表的别名来引用列。
表别名的命名参见[3.4]。
4.6 常用SQL 语句的编写规范常用SQL 语句的编写示例如下4.6.1CREATE 语句CREATE TABLE publishers(pub_id char(4) NOT NULL --标识CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTEREDCHECK (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.2SELECT语句SELECT <选择列列表>[ INTO <新表名> ]FROM <要选择的表名>[ WHERE <搜索条件> ][ GROUP BY <分组条件> ][ HAVING <搜索条件> ][ ORDER BY <排序规则> [ ASC | DESC ] ]禁止使用SELECT *4.6.3INSERT语句INSERT INTO <要插入的表名>(<列1>, <列2>, .., <列n-1>, <列n>)VALUES (<列1值>, <列2值>, .., <列n-1值>, <列n值>)4.6.4UPDATE语句UPDATE <要更新的表名>SET <要更新的列> = <列值>4.6.5DELETE语句DELETE FROM authorsWHERE au_lname = ''McBadden''4.7 条件执行语句(IF)编写规范条件执行语句IF…ELSE 按以下格式编写IF <条件表达式>BEGIN<命令行或程序块>END[ELSE IF <条件表达式>BEGIN<命令行或程序块>END]注:<1>上式若BEGIN…END 之间只包含单独一命令行,为使代码紧凑,BEG IN和END边界也常省略<2>IF…ELSE 语句可以嵌套,为提高代码的可读性,嵌套层次不应多于 5 层。