数据库命名规范(适用SQL Server)
设计原则
符号三大范式(每一列表达一个意思,每一行代表一个实例/每一行有唯一键/表内没有其它表的非主键信息)
每个表应该有的3个有用字段(记录创建或更新时间/记录创建者/记录版本)
避免保留字
表应避免可为空的列
命名规范
表
表名如Order/UserAccout
符合以下规范:
1. 统一采用单数形式,反对Orders
2. 首字母大写,多个单词的话,单词首字母大写,反对order/Useraccout/ORDER
3. 避免中文拼音,反对AgentBaoCi
4. 避免下划线连接,反对User_Accout(下划线适用Oracle数据库)
5. 避免名称过长,反对WebsiteInfomationModifyRecord
6. 多对多关系表,以Mapping结尾,如UserRoleMapping
7. 避免保留字
字段
字段名如userID/userName/userType
符合以下规范:
1. 首个字母小写,多个单词的话,单词首字母大写,反对UserID/Userid
2. 必须有一主键,主键不直接用ID,而是表名+ID,如userID/orderID
3. 常用的字段name,不直接用name,而是表名+Name,如userName/orderName
4. 常用的字段desc,不直接用desc,而是表名+Desc,如userDesc/orderDesc
5. 大写字母前必须包含至少两个小写的字母,反对uID/oID
6. 避免中文拼音
7. 避免下划线连接
8. 避免名称过长
9. 避免保留字
对象
1. 存储过程以SP_为前缀
2. 触发器以TR_为前缀
3. 函数以FN_为前缀
4. 主键以PK_为前缀
5. 索引以IX_为前缀
6. 前缀后的首字母大写,多个单词的话,单词首字母大写,如SP_CountFee
7. 所有的关键字的所有字母必须大写,如SELECT userID,username from User
相关文档:
一、简单实例
1.首先来一个最简单的存储过程吧
CREATE PROCEDURE dbo.testProcedure_AX
AS
select userID from USERS order by userid desc
注:dbo.testProcedure_AX是你创建的存储过程名,可以改为:AXzhz等,别跟关键字冲突就行了,AS下面就是一条SQL语句.
2.如何在ASP.NET中调用这个存储过程?
&n ......
"SQL Server 安装程序无法获取 ASPNET 帐户的系统帐户信息"
解决办法:
用aspnet_regiis实用工具卸载和重新安装一下就可以了。
具体的操作:
1、进入CMD:
C:\windows\microsoft.net\framework\v2.0.50727文件夹下,运行aspnet_regiis -u卸载
然后运行aspnet_regiis -i 重新安装,上述问题即可解决。
2、C:\WINDOWS\ ......
DATEDIFF
返回跨两个指定日期的日期和时间边界数。
一、 语法
DATEDIFF ( datepart , startdate , enddate )
二、参数
datepar ......
为了公司考勤系统的需要
编写的几个简单存储过程(可以手动运行,也可以设置事务自动运行!感觉还行比较通用,写出来共享下)
Calendar表结构很简单,2个字段:
fdDate 日期
fdType 考勤类型(工作日N,周末W,节假日H[需要根据需要自己修改])
--判断一段时间范围内的工作日(N)和周末(W)
Create PR ......