建表的范例脚本,存储过程中参数的命名
基本命名规则
表1. 基本数据库对象命名
数据库对象 | 前缀 | 举例 |
表(Table) 字段(Column) 视图(View) 存储过程(Stored procedure) 触发器(Trigger) 索引(Index) 主键(Primary key) 外键(Foreign key) Check约束(Check Constraint) Unique约束 用户定义数据类型(User-defined data type) 用户定义函数(User-defined function) |
无 无 v pr tr ix_ pk_ fk_ ck_ uq_ udt fn |
Student Title vActivity prDelOrder trOrder_D ix_CustomerID pk_Admin fk_Order_OrderType ck_TableColumn uq_TableColumn udtPhone fnDueDate |
一个建表的范例脚本
我正在建立我自己的个人空间,其中的文章表是这样写的:
Create Table Article
(
Id Int Identity(1,1) Not Null,
Title Varchar(50) Not Null Constraint uq_ArticleTitle Unique,
Keywords Varchar(50) Not Null,
Abstract Varchar(500) Not Null,
Author Varchar(50) Not Null Default '张子阳',
Type TinyInt Not Null Default 0 Constraint ck_ArticleType Check(Type in (0,1,2)), -- 0,原创;1,编译;2,翻译
IsOnIndex Bit Not Null Default 1, -- 是否显示在首页
Content Text Not Null,
SourceCode Varchar(100) Null, -- 程序源码的下载路径
Source Varchar(50) Not Null Default 'TraceFact', -- 文章出处
SrcUrl Varchar(150) Null, -- 文章出处的URL
PostDate DateTime Not Null Default GetDate(),
ViewCount Int Not Null Default 0,
ClassId Int Not Null -- 外键包含的字段,文章类别
Constraint pk_Article Primary Key(Id) -- 建立主键
)
存储过程中参数的命名
存储过程中的入口参数,我建议与其对应的字段名相同,这里,假设要写一个更新Northwind数据库Employees表的存储过程(做了简化),可以这么写:
Create Procedure prEmployeeUpdateById
@EmployeeId Int,
@LastName NVarchar(20),
@FirstName NVarchar(10)
As
Update Employees Set
LastName = @LastName,
FirstName = @FirstName
Where
EmployeeId = @EmployeeId
If @@error <> 0 or @@RowCount = 0
Raiserror 16001 ‘更新用户失败’
总结
在这篇文章中,我首先提出了开发人员对数据库对象命名不够重视的问题,随后列出了一张数据对象命名的简表。
接着我按照 表、字段、主键、外键、触发器、存储过程的顺序,详细讲述了数据库对象命名的规则。
其间,我还穿插着讲述了在数据库开发中常见的一些问题,包括建表时需要注意的问题,以及在管理存储过程时可以采取的技巧。
希望这篇文章能给你带来帮助。
==============================