



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【文档说明】:SQL语法编写没有标准的国际或厂家规范,与实际的客户和项目相关。本文档参考微软(中国)有限公司服务部实施项目中使用的编码规范,仅供参考。1 SQL对象命名规范命名要素命名要求示例备注表名名词tbOrder视图vw+_+表名vwOrder过程sp+_+动词名词spInputOrder参数名采用第一个字母小写的Camel函数fn+_+动词名词fnInputOrder参数名采用第一个字母小写的Camel索引ix+_+表名+_字段名ixOrderID触发器tg+_+表名+触发事件类型tgOrderAdd2 SQL对象设计规范2.1 字段设计要求1. 日期类型使用Datetime,2. 与数字相关的字段类型统一用numeric(M,N)格式。3. 整数类型用int.4. 用nvarchar类型.5. 逻辑或标识的字段不用bit而用char(1)来表示方便编程和提高运算速度.6. 图象字段采用Image类型.7. 主键一般要无意义,没有特殊的需要不要用复合主键(如果是由几个表派生出来的关系数据表可以使用复合主键),可以采用sql server默认的自增加的ID字段做主键。8. Not Null字段要加默认值。2.2 视图使用原则1. 视图字段名要尽量使用源表字段名,如果有重复,加上源表名作前缀。2. 增删改等操作不要直接使用视图,要使用源表进行。3. 如果系统对数据结构不需要保密,则只有对于复杂的、经常使用查询结果,才有必要使用视图。4. 如果系统要求数据结构保密,可以大量使用视图。2.3 存储过程建立规则1. 存储过程要有异常处理部分,确保过程的可执行性。2. 尽量在脚本加入设计思路的注释。3. 尽量减少临时表的使用,如确实需要,可以考虑使用表变量替代。2.4 函数建立规则1. 函数要有异常处理部分,确保过程的可执行性。2. 尽量在脚本加入设计思路的注释。2.5 触发器使用要求1. 尽量少使用触发器。如果有必要,则要综合考虑触发器的效率建立。2. 有外键关联的表,尽量使用外键的update、delete属性替代触发器的功能。3 SQL语句编写规范数据库开发阶段主要完成业务活动所必须的存储过程和触发器程序,Oracle使用使用PL/SQL,Microsoft SQLServer使用T-SQL编写。3.1 代码书写规范l 存储过程、触发器、自定函数书写宽度一般不要超过编辑区的可见范围(80字符左右);l 代码应按层次进行缩排书写,采用四空格缩进格式。将代码编辑器中制表键配置为使用空格填充,而不是使用制表符。 l SQL命令应根据命令长短调整命令语句中的关键字排列,使语句看起来结构清晰。l SQL命令中的字段(列)与参数或表达式应合理安排书写位置,使对应关系看起来清晰明了。l 使用一个空行分隔 T-SQL 代码的逻辑块。l 水平列出的字段(或参数或表达式)之间的逗号前后要留有适量空格,字段列表过长时从逗号后折到下一行书写,新行要缩进书写。l AND OR 逻辑表达式混合组合时要使用括号明确表明组合顺序。l SQL SERVER T-SQL命令词汇的大小写推荐采用Pascal格式。l CREATE创建对象命令推荐采用全大写,不能使用略写格式。l CREATE创建对象命令应明确指定所有者。l 函数、过程中每个参数、变量的定义各占一行。l 大写所有的SQL 关键字,包括 SQL 函数。变量名称及光标名称使用混和大小写。数据类型使用小写。l 当一个 SQL 语句中涉及到多个表时,始终使用表名别名来限定字段名,避免含义模糊的引用。别名使用大写。l sql脚本命名:.sql,.sqll 导出脚本命名:.sql3.2 T-SQL编程约定l 使用错误处理程序,必须使用 SET 或 SELECT 立即捕获错误代码。因为用来检查 ERROR 系统函数的 T-SQL 语句 (IF) 实际上在进程中清除了 ERROR 值,无法再捕获除零之外的任何值。l 避免使用“未声明的”功能,例如系统表中未声明的列、T-SQL 语句中未声明的功能或者未声明的系统存储过程或扩展的存储过程。 l 不要依赖任何隐式的数据类型转换。在为变量赋值或比较值之前,应使用适当的 CONVERT 函数使数据类型相匹配。l 不要将空的变量值直接与比较运算符(符号)比较。如果变量可能为空,应使用 IS NULL 或 IS NOT NULL 进行比较,或者使用 ISNULL 函数。l 不要使用 STR 函数进行舍入,此函数只能用于整数。如果需要十进制值的字符串形式,应先使用 CONVERT 函数(转至不同的范围)或 ROUND 函数,然后将其转换为字符串。也可以使用 CEILING 和 FLOOR 函数。l 使用数学公式时要小心,因为 T-SQL 可能会将表达式强制理解为一个不需要的数据类型。如果需要十进制结果,应在整数常量后加点和零 (.0)。l 决不要依赖 SELECT 语句会按任何特定顺序返回行,除非在 ORDER BY 子句中指定了顺序。l 通常,应将 ORDER BY 子句与 SELECT 语句一起使用。可预知的顺序(即使不是最方便的)比不可预知的顺序强,尤其是在开发或调试过程中。(部署到生产环境中之前,可能需要删除 ORDER BY 子句。)在返回行的顺序无关紧要的情况下,可以忽略 ORDER BY 的开销。l 不要在 T-SQL 代码中使用双引号。应为字符常量使用单引号。如果没有必要限定对象名称,可以使用(非 ANSI SQL 标准)括号将名称括起来。l 在 SQL Server中,尽量使用表变量来代替临时表。如果表变量包含大量数据,请注意索引非常有限(只有主键索引)。l 先在例程中创建临时表,最后再显式删除临时表。将 DDL 与 DML 语句混合使用有助于处理额外的重新编译活动。l 要认识到临时表并不是不可使用,适当地使用它们可以使某些例程更有效,例如,当需要重复引用大型表或常用表中的某个数据集时。但是,对于一次性事件,最好使用导出表。 l 使用表值 UDF 时要小心,因为在变量(而不是常量)中传递某个参数时,如果在 WHERE 子句中使用该参数,会导致表扫描。还要避免在一个查询中多次使用相同的表值 UDF。但是,表值 UDF 确实具有某些非常方便的动态编译功能。l 几乎所有的存储过程都应在开始时设置 SET NOCOUNT ON,而在结束时设置 SET NOCOUNT OFF。此标准同样适用于触发器。l 只要在例程中使用多个数据库修改语句,包括在一个循环中多次执行一个语句,就应考虑声明显式事务。l 使用基于光标的方法或临时表方法之前,应先寻找基于集的解决方案来解决问题。基于集的方法通常更有效。l 与临时表一样,光标并不是不可使用。对小型数据集使用 F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宣传引流培训室管理制度
- 对见义勇为人员管理制度
- 山东来北京人员管理制度
- 工程公司采购日常管理制度
- 幼儿园室外音乐设备管理制度
- 幼儿园户外水池管理制度
- 幼儿园木工设备管理制度
- 幼儿园物资交接管理制度
- 幼儿园课程培训管理制度
- 2025-2030年中国腰椎前路椎间融合行业市场现状供需分析及投资评估规划分析研究报告
- 2025年山西云时代技术有限公司招聘笔试参考题库含答案解析
- 河南省驻马店市2023-2024学年高二下学期7月期末考试 英语 含解析
- 2025年中国中煤能源集团限公司招聘10人高频重点提升(共500题)附带答案详解
- 发展性障碍学生就业转衔的家长支持研究
- 《保密意识培训》课件
- 2024年6月英语四级考试真题及答案(第1套)
- 2024中国糖尿病合并慢性肾脏病临床管理共识解读
- 糖尿病的中医科普
- 寺院承包合同范例
- JJF(苏) 50-2024 水泥混凝土稠度试验仪校准规范
- 冷库建设项目可行性研究报告5篇
评论
0/150
提交评论