- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
U9数据库开发规范
用友软件股份有限公司研发过程
U9数据库开发规范
文件编号:
U9-SE-CD-WF-003
版本号:
V1.0
修改状态:
编写人:
黄卫
审核人:
张红斌
批准人:
批准时间:
适用对象
该规范适用于U9设计人员和开发人员。
版本记录
此部分要记录该文档形成过程中的历次版本变更过程及变更的内容
版本
修改与参与人
修改时间
修改原因
修改概述
审批人
1.0
黄卫
2006/04/15
原始文档建立
张红斌
相关文档
此部分包含对该文档起指导与约束作用的相关文档以及预计在该文档指导与约束下将要建立的文档。
约定
标有 ★ 的条目表示强制性规范。
数据库开发规范细则
书写风格
大小写
SQL关键字:均使用小写。但是定义连接属性,如SET NOCOUNT ON 可以大写。
变量:Camel风格,单词首字符大写
换行与缩进
1 每行语句不要超过80个字符,超过需换行。
2 SQL语句推荐根据其谓词换行。如:
select col1 ...
from tablename
where col1 = @xxx
group by col1
having count(col1)100
order by col1;
select col1,
col2,
col3,
...
from tablename
where col1 = @xxx
group by col1
having count(col1)100
order by col1;
3 缩进推荐使用两个空格
4 begin和end包含的代码块需要缩进。如:
if(@xxx1=? or @xxx2=?)
begin
...
end
else
begin
...
end
注释
在存储过程内部的注释一律使用“--”,禁止使用“/* */”。
变量
1 变量的定义和初始化,要在第一次引用其的模块前面定义。
2 如果变量是用于存储数据表中某个字段值的时候,请使变量类型包括精度与数据库表字段类型一致。
3 不要在循环中定义变量。
4 变量赋值
使用set @xxx = ? ,不要用早期版本的select @xxx = ? 方式。
DDL语句
创建对象
创建对象的SQL脚本应先检查对象是否存在,如果存在,先drop掉:
if Object_Id(Ndbo.P_AllocSerials, NP) is not null
begin
drop procedure dbo.P_AllocSerials
end
go
create procedure dbo.P_AllocSerials
@AllocCount int output,
@StartSN bigint output
创建表
1 判断普通数据表是否存在。
Object_Id(Ndbo.ValidCombinTable, NU)
2 判断临时表是否存在。
Object_Id(Ntempdb.dbo.#aaa)
Object_Id(Ntempdb.dbo.##aaa)
3 除应遵循创建对象的一般约定外,最重要的是SQL脚本中不能包含物理分布和语言信息。例如不能包含下面的粗体字部分:
create table [dbo].[UBF_MD_Class](
[ID] [uniqueidentifier] NOT NULL,
[MD_Component_ID] [uniqueidentifier] NULL,
[MD_ParentClass_ID] [uniqueidentifier] NULL,
[Name] [nvarchar](255) COLLATE Chinese_PRC_CI_AS –-多语言 NULL,
[FullName] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[DisplayName] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[Description] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL
constraint [PK_MD_Class] primary key clustered
(
[ID] asc
)
) ON [PRIMARY] –物理分布
DML语句
存储过程调用
1 调用有返回值的存储过程。
exec @RC = dbo.Base_GetRule @Define, @SOBID, @AccountTypeID,
@Rule output
2 调用没有返回值的存储过程。
exec dbo.Ba
文档评论(0)