zoukankan      html  css  js  c++  java
  • 建表的范例脚本,存储过程中参数的命名

    基本命名规则

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

    总结

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

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

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

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

     

     

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

     

  • 相关阅读:
    IDEA在debug时修改变量值
    CSS覆盖公共样式中的某个属性
    POI获取单元格的宽和高
    MySQL将一张表的某些列数据,复制到另外一张表,并且修改某些内容
    哈希是什么?为什么哈希存取比较快?
    工厂模式
    观察者模式
    instanceof判断的对象可以是接口
    JeeSite框架中httpSession.invalidate();无效
    HSQL可视化工具
  • 原文地址:https://www.cnblogs.com/csj007523/p/1248804.html
Copyright © 2011-2022 走看看