欢迎来到天天文库
浏览记录
ID:40567879
大小:92.00 KB
页数:21页
时间:2019-08-04
《TSQL编程规范(sqlserver2005)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Sql2005的Transact-SQL编程规范1. 基本原则以大小写敏感编写SQL语句。尽量使用Unicode数据类型。优先使用连接代替子查询或嵌套查询。尽量使用参数化SQL查询代替语句拼接SQL查询。禁止使用[拼音]+[英语]的方式来命名SQL对象或变量。2. 命名规范在一般情况下,采用Pascal样式或Camel样式命名数据库对象,使在开发基于数据库应用程序的时候通过ORM工具生成的数据访问代码更好的符合命名规范。另外,关系型数据库同Xml结合得越来越紧密,规范的命名很有必要。在实际数据库开发过程中,
2、如果需求方已经提供数据库设计方案,以提供的方案为准;在原有数据库上进行升级开发时,在可行的情况下可适当做出设计调整以符合编程规范。1.1.对象命名1.1.1. 数据库第一种方式,采用Pascal样式命名,命名格式为[项目英文名称]。示例:AdventureWorks第二种方式,采用Pascal样式命名,命名格式为[项目英文名称]+Db。示例:AdventureWorksDb BizTalkRuleEngineDb建议采用第一种方式。1.1.2. 关系型数据仓库采用Pascal样式命名,命名格式为[项目英文名
3、称]+DW。示例:AdventureWorksDW1.1.3. 数据架构除SQLServer系统定义的数据架构外,新建架构采用Pascal样式命名,命名格式为[架构名]。示例:HumanResources Production对数据库对象Table,View,Procedure,Function等使用数据架构进行归类。在SQLServer2000中dbo为默认架构。1.1.4. 数据表采用Pascal样式命名,命名格式为[表名]。示例:Employee Product表名以英文单数命名。典型的例
4、子,使用Product,而不是Products。1.1.5. 数据视图视图名称采用Pascal样式命名,命名格式为v+[视图名称]。示例:vEmployee vSalesPerson 1.1.6. 数据列列名称命名采用英文单词或缩写,英文单词只来自于具体业务定义,尽量表达清楚含义。采用Pascal样式命名,命名格式为[列名称]。示例:AddressID PostalCode尽量避免使用拼音命名,如果不可避免,对于比较短的列名,采用拼音全写,如果拼音列名比较复杂,可以采用首个字用全拼,其它字用首字
5、母大写表示。示例:宁波Ningbo 经营方式JingYFS1.1.7. 存储过程建议采用Pascal样式命名,命名格式为[存储过程名称]。示例:GetUser AddUser1.1.8. 函数自定义函数采用Pascal样式命名,命名格式为[函数名],系统函数使用全部大写。示例:SELECTISNULL(@LastName,'Unknownlastname');GETDATE() 1.1.9. 用户定义数据类型采用Pascal样式命名,命名格式为[自定义数据类型名称]。示例:Flag NameS
6、tyle1.1.10. DML触发器DML触发器是当数据库服务器中发生数据操作语言(DML)事件时要执行的操作。DML事件包括对表或视图发出的UPDATE、INSERT或DELETE语句。根据事件不同命名规则使用前缀进行区分,格式为[u
7、i
8、d]+[表名
9、视图名]示例:uEmployee iEmployee dEmployee另外一种方式为,AFTER触发器:TR_表名_[后面插入加I,修改加U,删除加D]。INSTEADOF触发器:TR_表名或视图名_OF[后面插入加I,修改加U,删除加D]1.1.
10、11. DDL触发器响应各种数据定义语言(DDL)事件而激发。这些事件主要与以关键字CREATE、ALTER和DROP开头的Transact-SQL语句对应。执行DDL式操作的系统存储过程也可以激发DDL触发器。采用Camel样式命名,命名单词能够描述DDL触发器功能。示例:CREATETRIGGERsafetyONDATABASEFORDROP_TABLE,ALTER_TABLEAS PRINT'YoumustdisableTrigger"safety"todroporaltertables!'
11、 ROLLBACK另外一种方式为添加dll前缀,示例:CREATETRIGGER[ddlDatabaseTriggerLog]ONDATABASEFORDDL_DATABASE_LEVEL_EVENTSAS1.1.12. 主键、外键关系和索引主键:PK_[表名称]_[主键];如果是组合主键,使用PK_[表名]_[主键1]_[主键2]。示例:PK_Store_CustomerID PK_StoreContac
此文档下载收益归作者所有