美文网首页SQL server
SQLserver 中的系统表 systypes,sysobj

SQLserver 中的系统表 systypes,sysobj

作者: 赵研宇 | 来源:发表于2020-02-09 07:21 被阅读0次

    一、systypes

    系统对象表。保存当前数据库中的所有数据类型,包含系统提供数据类型和用户定义数据类型
    systypes 常用字段说明:

    systypes(
       Name sysnmae       --类型名称
        ,xtype  inyint          --物理存储类型
        ,xusertype smallint --扩展用户类型
        ,length  smallint      --数据类型的物理存储长度。
       )
    

    二、sysobjects

    系统对象表。 保存当前数据库的对象,如约束、默认值、日志、规则、存储过程等
    sysobjects 常用字段说明:

    sysObjects (
                     Name sysname --object 名称
                     ,id int                 --object id
                     ,xtype char(2)   -- object 类型
                     ,type char(2)     -- object 类型(与xtype 相同)
                     ,uid smallint      --object 所有者的ID
               )
    

    注:需要解释的是 xtype 和type 是一模一样的,他的数据为:
    C = CHECK 约束
    D = 默认值或 DEFAULT 约束
    F = FOREIGN KEY 约束
    FN = 标量函数
    IF = 内嵌表函数
    K = PRIMARY KEY 或 UNIQUE 约束
    L = 日志
    P = 存储过程
    R = 规则
    RF = 复制筛选存储过程
    S = 系统表
    TF = 表函数
    TR = 触发器
    U = 用户表
    V = 视图
    X = 扩展存储过程

    三、sysolumns

    当前数据库的所有字段都保留在里面。
    常用字段说明:

    sysColumns (
                     name sysname   --字段名称
                    ,id int                   --该字段所属的表的ID
                    ,xtype tinyInt         --该字段类型,关联sysTypes表
                    ,length smallint      --该字段物理存储长度
    )
    

    四、常用查询

    1.查询当前数据库中的所有数据类型

    select * from systypes;
    

    2、查看所有表名:

    select name from sysobjects where type='U'
    

    3、查询表的所有字段名:

    Select name from syscolumns Where ID=OBJECT_ID('表名')
    

    五、SQL中object_id函数的用法

    int object_id('objectname');
    此方法返回数据库对象标识号。
    其中,参数objectname 表示要使用的对象,其数据类型为nchar或char(如果为char,系统将其转换为nchar)
    返回类型为int,表示该对象在系统中的编号。
    比如:

    use wf_timesheet
    select object_id('usp_check_excess_hours')
    

    相关文章

      网友评论

        本文标题:SQLserver 中的系统表 systypes,sysobj

        本文链接:https://www.haomeiwen.com/subject/auqgxhtx.html