管理制度-程序员培训SQL编码规范 精品.doc

上传人:lao****ou 文档编号:31936 上传时间:2022-11-07 格式:DOC 页数:9 大小:83.15KB
下载 相关 举报
管理制度-程序员培训SQL编码规范 精品.doc_第1页
第1页 / 共9页
管理制度-程序员培训SQL编码规范 精品.doc_第2页
第2页 / 共9页
管理制度-程序员培训SQL编码规范 精品.doc_第3页
第3页 / 共9页
管理制度-程序员培训SQL编码规范 精品.doc_第4页
第4页 / 共9页
管理制度-程序员培训SQL编码规范 精品.doc_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《管理制度-程序员培训SQL编码规范 精品.doc》由会员分享,可在线阅读,更多相关《管理制度-程序员培训SQL编码规范 精品.doc(9页珍藏版)》请在第一文库网上搜索。

1、MS SQL脚本编码规范福州星网视易信息系统有限公司更新记录:版本作者日期内容1.0黄晨东20XX.09.09SQL脚本编写规范2.0蔡炆炆20XX.10.15基于1.0版本进行补充和整理目录Transact-SQL编程规范1一、概述11.基本原则12.基本规范1二、对象命名11.数据库12.数据库文件13.数据表24.数据视图25.数据列26.存储过程27.函数38.用户定义数据类型39.主键、索引3三、参数命名31.数据列参数32.非数据列参数43.常用字段命名4四、SQL编写41.大小写42.存储格式43.类型选择44.默认值55.字段长度56.使用“”57.语句缩进58.语句换行59.

2、语句分割510.使用“*”511.表名别名512.类型转换513.数值比较614.排序615.Unicode字符串616.BEGIN.END 块617.TOP子句618.TRANSACTION编写619.存储过程7五、代码注释71.代码头部注释72.TRANSACTION注释7Transact-SQL编程规范一、 概述本规范主要规定SQL脚本在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。1. 基本原则以大小写敏感编写SQL语句。尽量使用Unicode 数据

3、类型。优先使用连接代替子查询或嵌套查询。尽量使用参数化SQL查询代替语句拼接SQL查询。尽量使用存储过程代替SQL语句。禁止使用拼音+英语的方式来命名SQL对象或变量。禁止使用触发器。禁止在表间创建外键关系。禁止创建自增长主键列2. 基本规范采用Pascal样式命名数据库对象。大写T-SQL语言的所有关键字,谓词和系统函数。Pascal 大小写:组成标识符的每个单词的首字母大写,其余字母小写的书写约定。对于缩写的双字母单词,要求全部大写。例如:ApplicationException ID二、 对象命名1. 数据库命名格式为项目英文名称。示例:AdventureWorks2. 数据库文件数据文

4、件:数据库名称 + _Data.mdf日志文件:数据库名称 + _Log.ldf示例:AdventureWorks_Data.mdf AdventureWorks_Log.ldf3. 数据表命名格式为BL_TBL_+表名。示例:BL_TBL_Employee BL_TBL_Product表名以英文单数命名。示例:使用BL_TBL_Product 而不是BL_TBL_Products4. 数据视图命名格式为BL_V_+ 视图名称。示例:BL_V_Employee BL_V_SalesPerson5. 数据列列名称命名采用英文单词或缩写,英文单词只来自于具体业务定义,尽量表达清楚含义。命名格式为列

5、名称。示例:AddressID PostalCode尽量避免使用拼音命名,如果不可避免,对于比较短的列名,采用拼音全写,如果拼音列名比较复杂,可以采用首个字用全拼,其它字用首字母大写表示。示例:宁波 Ningbo 经营方式 JingYFS6. 存储过程命名格式为BL_HV_ +存储过程名称。示例:BL_HV_GetUser BL_HV_AddUser每个过程必须要有两个输出参数ErrorCode和ErrorMessage。存储过程书写格式如下:if exists(select 1 from sysobjects where id=object_id(bl_hv_Checkout)drop pr

6、ocedure bl_hv_Checkoutgocreate procedure Checkout( .ErrorCode int output, -返回错误代码 0表示成功 非0 表示失败 ErrorMessage varchar(100) output -返回错误信息)asdeclare checkoutid int, -变量声明在此处 beginendgo7. 函数命名格式为BL_Fn_ +函数名 。示例:BL_Fn_GetUser系统函数使用全部大写。示例:SELECT ISNULL(LastName,Unknown last name); GETDATE()8. 用户定义数据类型命名

7、格式为自定义数据类型名称。示例:Flag NameStyle9. 主键、索引主键: PK_表名称_主键;如果是组合主键,使用PK_表名_主键1_主键2。示例:PK_ BL_TBL_Store_CustomerID PK_ BL_TBL_StoreContact_CustomerID_ContactID聚集索引:PK_表名称_主键;如果是组合主键,使用PK_表名_主键1_主键2。示例:PK_Store_CustomerID PK_StoreContact_CustomerID_ContactID唯一非聚集索引:AK_表名称_列名称。示例:AK_Store_rowguid不唯一非聚集索引:PK_表

8、名称_列名称。示例:IX_Store_SalesPersonID主 XML索引:PXML_表名称_Xml类型列名称。示例:PXML_Store_Demographics三、 参数命名1. 数据列参数命名格式为 + 列名称。示例:EmployeeID在列名不符合Pascal样式时(早期遗留系统),例如使用全部大写的列名称,或使用“_”进行连接的字段名称,参数名称定义使用 + 列名称,这里的列名称尽量符合Pascal样式命名。2. 非数据列参数在参数无法跟列名称进行关联时,使用能够反映该参数功能的英文单词或单词组合, 采用Pascal样式命名。示例:ErrorID Flag3. 常用字段命名这里的

9、常用字段是指在建表时频繁使用的表名或列名,下表对常用字段进行建议性定义, 列名称数据类型说明CreatedDatedatetime纪录创建日期,一般使用GETDATE()自动生成ModifiedDatedatetime纪录最后修改日期,首次使用GETDATE()DeletedDatedatetime记录删除(标记删除)日期StartDatedatetime开始日期EndDatedatetime结束日期StartTimedatetime开始时间EndTimedatetime结束时间IDint使用ID代替Id或idParentIDint父IDStatusint状态四、 SQL编写1. 大小写大写T

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

11、char(MAX)代替text;varbinary(MAX)代替image。在特殊的数据表结构中可考虑xml数据类型,达到事半工倍的效果。4. 默认值在建立数据表时,尽量使用默认值代替NULL值。比如设置CreatedDate列默认值为GETDATE()。在可行的情况下设置字段为不允许空。5. 字段长度始终指定字符数据类型的长度,并确保允许用户可能需要的最大字符数,避免超出最大长度时出现字符丢失现象。对于字符型数据,建议采用2的n次方来定义数据长度。示例:nvarchar(32) varchar(64)6. 使用“”在 T-SQL 代码中为字符常量使用单引号,避免使用双引号。7. 语句缩进一个

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

13、SQL 会进行必要的转换。例如,把数字变量赋予字符值。相反,在为变量赋值或比较值之前,应使用适当的 CONVERT 函数使数据类型相匹配。13. 数值比较不要将空的变量值直接与比较运算符(符号)比较。如果变量可能为空,应使用 IS NULL 或 IS NOT NULL 进行比较,或者使用 ISNULL 函数。14. 排序决不要依赖 SELECT 语句会按任何特定顺序返回行,除非在 ORDER BY 子句中指定了顺序。通常,应将 ORDER BY 子句与 SELECT 语句一起使用。可预知的顺序(即使不是最方便的)比不可预知的顺序强,尤其是在开发或调试过程中。在返回行的顺序无关紧要的情况下,可以忽略 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()SELEC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 发展战略

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服