ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:96.64KB ,
资源ID:3848637      下载积分:15 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3848637.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(程序员培训-SQL编码规范.doc)为本站会员(您的****手)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

程序员培训-SQL编码规范.doc

1、 http:/福州星网视易信息系统有限公司 MS SQL 脚本编码规范福州星网视易信息系统有限公司http:/福州星网视易信息系统有限公司 目录Transact-SQL 编程规范 .1一、 概述 .11. 基本原则 .12. 基本规范 .1二、 对象命名 .11. 数据库 .12. 数据库文件 .13. 数据表 .24. 数据视图 .25. 数据列 .26. 存储过程 .27. 函数 .38. 用户定义数据类型 .39. 主键、索引 .3三、 参数命名 .31. 数据列参数 .32. 非数据列参数 .43. 常用字段命名 .4四、 SQL 编写 .41. 大小写 .42. 存储格式 .43.

2、类型选择 .44. 默认值 .55. 字段长度 .56. 使用“” .57. 语句缩进 .58. 语句换行 .59. 语句分割 .510. 使用“*” .511. 表名别名 .512. 类型转换 .513. 数值比较 .614. 排序 .615. Unicode 字符串 .616. BEGIN.END 块 .617. TOP 子句 .618. TRANSACTION 编写 .619. 存储过程 .7五、 代码注释 .71. 代码头部注释 .72. TRANSACTION 注释 .7http:/福州星网视易信息系统有限公司 第 1 页 Transact-SQL 编程规范一、 概述本规范主要规定

3、SQL 脚本在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。1. 基本原则以大小写敏感编写 SQL 语句。尽量使用 Unicode 数据类型。优先使用连接代替子查询或嵌套查询。尽量使用参数化 SQL 查询代替语句拼接 SQL 查询。尽量使用存储过程代替 SQL 语句。禁止使用拼音+英语的方式来命名 SQL 对象或变量。禁止使用触发器。禁止在表间创建外键关系。禁止创建自增长主键列2. 基本规范采用 Pascal 样式命名数据库对象。大写 T-SQL 语言的所有

4、关键字,谓词和系统函数。Pascal 大小写 :组成标识符的每个单词的首字母大写,其余字母小写的书写约定。对于缩写的双字母单词,要求全部大写。例如:ApplicationExceptionID二、 对象命名1. 数据库命名格式为项目英文名称。示例:AdventureWorks2. 数据库文件数据文件:数据库名称 + _Data.mdf日志文件:数据库名称 + _Log.ldf示例:AdventureWorks_Data.mdfAdventureWorks_Log.ldfhttp:/福州星网视易信息系统有限公司 第 2 页 3. 数据表命名格式为 BL_TBL_+表名。示例:BL_TBL_Emp

5、loyee BL_TBL_Product表名以英文单数命名。示例:使用 BL_TBL_Product 而不是 BL_TBL_Products4. 数据视图命名格式为 BL_V_+ 视图名称。示例:BL_V_EmployeeBL_V_SalesPerson5. 数据列列名称命名采用英文单词或缩写,英文单词只来自于具体业务定义,尽量表达清楚含义。命名格式为列名称。示例:AddressIDPostalCode尽量避免使用拼音命名,如果不可避免,对于比较短的列名,采用拼音全写,如果拼音列名比较复杂,可以采用首个字用全拼,其它字用首字母大写表示。示例:宁波 Ningbo经营方式 JingYFS6. 存储

6、过程命名格式为 BL_HV_ +存储过程名称。示例:BL_HV_GetUserBL_HV_AddUser每个过程必须要有两个输出参数ErrorCode 和ErrorMessage。存储过程书写格式如下:if exists(select 1 from sysobjects where id=object_id(bl_hv_Checkout)drop procedure bl_hv_Checkoutgocreate procedure Checkout(.ErrorCode int output, -返回错误代码 0 表示成功 非 0 表示失败 ErrorMessage varchar(100)

7、output -返回错误信息)asdeclarecheckoutid int, -变量声明在此处 beginhttp:/福州星网视易信息系统有限公司 第 3 页 endgo7. 函数命名格式为 BL_Fn_ +函数名 。示例:BL_Fn_GetUser系统函数使用全部大写。示例:SELECT ISNULL(LastName,Unknown last name); GETDATE()8. 用户定义数据类型命名格式为自定义数据类型名称。示例:FlagNameStyle9. 主键、索引主键: PK_表名称_主键;如果是组合主键,使用 PK_表名 _主键 1_主键 2。示例:PK_ BL_TBL_St

8、ore_CustomerIDPK_ BL_TBL_StoreContact_CustomerID_ContactID聚集索引:PK_表名称_主键;如果是组合主键,使用 PK_表名_主键 1_主键 2。示例:PK_Store_CustomerID PK_StoreContact_CustomerID_ContactID唯一非聚集索引:AK_表名称_ 列名称。示例:AK_Store_rowguid不唯一非聚集索引:PK_表名称 _列名称。示例:IX_Store_SalesPersonID主 XML 索引: PXML_表名称_Xml 类型列名称 。示例:PXML_Store_Demographics

9、三、 参数命名1. 数据列参数命名格式为 + 列名称。示例:EmployeeID在列名不符合 Pascal 样式时(早期遗留系统) ,例如使用全部大写的列名称,或使用“_”进行连接的字段名称,参数名称定义使用 + 列名称,这里的列名称尽量符合 Pascal 样式命名。http:/福州星网视易信息系统有限公司 第 4 页 2. 非数据列参数在参数无法跟列名称进行关联时,使用能够反映该参数功能的英文单词或单词组合, 采用Pascal 样式命名。示例:ErrorIDFlag3. 常用字段命名这里的常用字段是指在建表时频繁使用的表名或列名,下表对常用字段进行建议性定义, 列名称 数据类型 说明Crea

10、tedDate datetime 纪录创建日期,一般使用GETDATE()自动生成ModifiedDate datetime 纪录最后修改日期,首次使用 GETDATE()DeletedDate datetime 记录删除(标记删除)日期StartDate datetime 开始日期EndDate datetime 结束日期StartTime datetime 开始时间EndTime datetime 结束时间ID int 使用 ID 代替 Id 或 idParentID int 父 IDStatus int 状态四、 SQL 编写1. 大小写大写 T-SQL 语言的所有关键字,谓词和系统函数

11、。变量名称及游标名称使用 Pascal 样式。数据类型定义使用全部小写。示例:DECLARE LastName nvarchar(32) ;2. 存储格式尽量采用 Unicode 数据存储格式,提高可移植性和兼容性,实际应用中尽量使用nchar、 nvarchar、ntext 代替 char、varchar、text。3. 类型选择如果字符具有明确的长度,使用 nchar 代替 nvarchar;char 代替 varchar。在只有两个可能数值时,使用 bit 代替 int 或 smallint。在 SQL Server 2005 中,使用 nvarchar(MAX)代替 ntext;var

12、char(MAX) 代替text;varbinary(MAX)代替 image。在特殊的数据表结构中可考虑 xml 数据类型,达到事半工倍的效果。http:/福州星网视易信息系统有限公司 第 5 页 4. 默认值在建立数据表时,尽量使用默认值代替 NULL 值。比如设置 CreatedDate 列默认值为GETDATE()。在可行的情况下设置字段为不允许空。5. 字段长度始终指定字符数据类型的长度,并确保允许用户可能需要的最大字符数,避免超出最大长度时出现字符丢失现象。对于字符型数据,建议采用 2 的 n 次方来定义数据长度。示例:nvarchar(32)varchar(64)6. 使用“”在

13、 T-SQL 代码中为字符常量使用单引号, 避免使用双引号。7. 语句缩进一个嵌套代码块中的语句使用 2 个空格的缩进。8. 语句换行建议 SQL 代码每行以关键字或“”开头。示例:SELECT ShiftID,Name,StartTime,EndTime,ModifiedDateFROM AdventureWorks.HumanResources.Shift9. 语句分割使用一个(而不是两个)空行分隔 T-SQL 代码的逻辑块。10.使用“*”尽量避免在任何代码中使用 “SELECT *”。11.表名别名表名别名要简短,但意义要尽量明确。通常使用大写的表名作为别名,使用 AS 关键字指定表或

14、字段的别名。12.类型转换不要依赖任何隐式的数据类型转换,不要假定 T-SQL 会进行必要的转换。例如,把数字变量赋予字符值。相反,在为变量赋值或比较值之前,应使用适当的 CONVERT 函数使数据类型相匹配。http:/福州星网视易信息系统有限公司 第 6 页 13.数值比较不要将空的变量值直接与比较运算符(符号)比较。如果变量可能为空,应使用 IS NULL 或 IS NOT NULL 进行比较,或者使用 ISNULL 函数。14.排序决不要依赖 SELECT 语句会按任何特定顺序返回行,除非在 ORDER BY 子句中指定了顺序。通常,应将 ORDER BY 子句与 SELECT 语句一

15、起使用。可预知的顺序(即使不是最方便的)比不可预知的顺序强,尤其是在开发或调试过程中。在返回行的顺序无关紧要的情况下,可以忽略 ORDER BY ,减少资源开销。15. Unicode 字符串在 Unicode 字符前面使用 N 前缀,避免引起数据的不一致。示例:- Assumes the default code page is not GreekCREATE TABLE #t1 (c1 nchar(1)INSERT #t1 VALUES(N)INSERT #t1 VALUES()SELECT * FROM #t1输出结果:c1 - O16. BEGIN.END 块在 SQL 代码快中尽量使

16、用 BEGIN.END 语句块,提高代码可阅读性。17. TOP 子句尽量使用 TOP(变量)来减少 SQL 拼串现象。18. TRANSACTION 编写只要在例程中使用多个数据库修改语句,包括在一个循环中多次执行一个语句,就应考虑声明显式事务。实例:BEGIN TRANSACTION Tran_1;UPDATE HumanResources.Employee SET Title = Title ,HireDate = HireDate ,CurrentFlag = CurrentFlag WHERE EmployeeID = EmployeeID;IF ERROR 0BEGINROLLBA

17、CK TRANSACTION Tran_1;ENDCOMMIT TRANSACTION Tran_1;http:/福州星网视易信息系统有限公司 第 7 页 19.存储过程在编写存储过程时,使用 PROCEDURE 代替 PROC 简写。示例:CREATE PROCEDURE dbo.存储过程名字五、 代码注释1. 代码头部注释在 SQL 代码块(sql 文件或存储过程)的头部进行注释,标注创建人(Author)、创始日期(Create date)、修改信息 (Modify n)。格式:- =- Author: - Create date: - Description: - Modify n: - =示例:- =- Author: Zhanghaifeng- Create date: 2006-12-25- Description: H2000 报关单回执处理- Modify 1: 郑佐, 2006-12-31, 简化逻辑判断流程- Modify 2: 郑佐, 2007-01-20, 更新条件判断- =注:日期格式使用 yyyy-MM-dd。Modify n n 代表修改序号,从 1 开始,每次修改加 1。2. TRANSACTION 注释建议在每个事务的开头进行注释,说明该事务的功能。- BEGIN TRANSACTION Tran_1;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。