建表的范例脚本,存储过程中参数的命名

基本命名规则

表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 ‘更新用户失败’

总结

在这篇文章中,我首先提出了开发人员对数据库对象命名不够重视的问题,随后列出了一张数据对象命名的简表。

接着我按照 表、字段、主键、外键、触发器、存储过程的顺序,详细讲述了数据库对象命名的规则。

其间,我还穿插着讲述了在数据库开发中常见的一些问题,包括建表时需要注意的问题,以及在管理存储过程时可以采取的技巧。

希望这篇文章能给你带来帮助。

 

 

==============================

 

原文地址:https://www.cnblogs.com/csj007523/p/1248804.html