预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共21页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

SQLServer数据库编程规范 《讨论稿》 1总则 1.1目的 为了规范盟友平台开发过程中SQL语句的编写工作,提高SQL 语句共享,避免语义或语句相同的SQL语句重复解析,优化SQL查询,培养开发人员良好的代码风格,参照工作中的体会和常用代码规范,编写此规范。 1.2基本原则 以大小写敏感编写SQL语句。 尽量使用Unicode数据类型。 优先使用连接代替子查询或嵌套查询。 尽量使用参数化SQL查询代替语句拼接SQL查询。 禁止使用[拼音]+[英语]的方式来命名SQL对象或变量。 尽量使用存储过程代替SQL语句。 1.3基本规范 采用Pascal样式或Camel样式命名数据库对象。 大写T-SQL语言的所有关键字,谓词和系统函数。 2命名规范 在一般情况下,采用Pascal样式或Camel样式命名数据库对象,使在开发基于数据库应用程序的时候通过ORM工具生成的数据访问代码不需要调整就符合程序开发语言(比如C#)命名规范。 另外,关系型数据库同Xml结合得越来越紧密,规范的命名越来越重要。 2.1对象命名 2.1.1数据库 采用Pascal样式命名,命名格式为[项目英文名称]。 示例:ReportServer、AdventureWorks 2.1.2数据库文件 数据文件:[数据库名称]+.mdf 日志文件:[数据库名称]+_Log.ldf 示例:ReportServer.mdf、AdventureWorks.mdf ReportServer_Log.ldf、AdventureWorks_Log.ldf 2.1.3关系型数据仓库 采用Pascal样式命名,命名格式为[项目英文名称]+DW。 示例:ReportServerDW、AdventureWorksDW 2.1.4数据架构 除SQLServer系统定义的数据架构外,新建架构采用Pascal样式命名,命名格式为[架构名]。 示例:HumanResources、Production、Person、Sales 对数据库对象Table,View,Procedure,Function等使用数据架构进行归类。在SQLServer2000/5/8中dbo为默认架构。 2.1.5数据表 采用Pascal样式命名,命名格式为[表名]。 示例:Address、Product、ProductModel 表名以英文单数命名,主要是参考SQLServer2008示例数据库AdventureWorks。 示例:使用Product,而不是Products 2.1.6数据视图 视图名称采用Pascal样式命名,命名格式为v+[视图名称]。 示例:vProduct、vSalesPerson 2.1.7数据列 列名称命名采用英文单词或缩写,英文单词只来自于具体业务定义,尽量表达清楚含义。采用Pascal样式命名,命名格式为[列名称]。 示例:AddressID、PostalCode 2.1.8存储过程 建议采用Pascal样式命名,命名格式为up_[存储过程名称]。 示例:up_GetUser、up_AddUser 备注:在SQLServer2008示例数据库中使用Camel样式命名。 2.1.9函数 自定义函数采用Pascal样式命名,命名格式为fn_[函数名],系统函数使用全部大写。 示例:ufn_GetUser()、ufn_AddUser() 示例:SELECTISNULL(@LastName,’Unknownlastname’); GETDATE() 2.1.10用户定义数据类型 采用Pascal样式命名,命名格式为[自定义数据类型名称]。 示例:FlagNameStyle 2.1.11DML触发器 DML触发器是当数据库服务器中发生数据操作语言(DML)事件时要执行的操作。DML事件包括对表或视图发出的UPDATE、INSERT或DELETE语句。根据事件不同命名规则使用前缀进行区分,格式为[u|i|d]+[表名|视图名] 示例:uProduct、iProduct、dProduct 另外一种方式为, AFTER触发器:TR_表名_[后面插入加I,修改加U,删除加D]。 INSTEADOF触发器:TR_表名或视图名_OF[后面插入加I,修改加U,删除加D] 2.1.12DDL触发器 响应各种数据定义语言(DDL)事件而激发。这些事件主要与以关键字CREATE、ALTER和DROP开头的Transact-SQL语句对应。执行DDL式操作的系统存储过程也可以激发DDL触发器。 采用Camel样式命名,命名单词能够描述DDL触发器功能。 示例: CREATETRIGGERsafetyONDATABASE FORDROP_TABLE,ALTER_TABLE AS PRINT’’ ROLLBAC