zoukankan      html  css  js  c++  java
  • 理解SQL Server系统表sysobjects (转)

    作者: Builder.com.cn
    2006-12-24 16:19:20


    [被屏蔽广告]

    关于SQL Server数据库的一切信息都保存在它的系统表格里。我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格。但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器。你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工。

    这就让sysobjects表格有了用武之地。虽然我不建议你更新这个表格,但是你当然有权对其进行审查。

    在大多数情况下,对你最有用的两个列是sysobjects.name和sysobjects.xtype。前面一个用来列出待考察对象的名字,而后一个用来定义对象的类型,其代码如下:

    • C检查约束。
    • D默认的约束
    • F外键约束
    • L日志
    • P存储过程
    • PK主键约束
    • RF复制过滤存储过程
    • S系统表格
    • TR触发器
    • U用于表格。
    • UQ独特的约束。
    • V视图
    • X被扩展的存储过程

    在碰到触发器的情形下,用来识别触发器类型的其他三个列是:deltrig、instrig和uptrig。

    你可以用下面的命令列出感兴趣的所有对象:

    SELECT * FROM sysobjects WHERE xtype = <type of interest>

    在特殊情况下,也就是在父表格拥有触发器的情况下,你可能想要用下面这样的代码查找数据库:

    SELECT
          Sys2.[name] TableName,
          Sys1.[name] TriggerName,
          CASE
                WHEN Sys1.deltrig > 0 THEN'Delete'
                WHEN Sys1.instrig > 0 THEN'Insert'
                WHEN Sys1.updtrig > 0 THEN'Update'
          END'TriggerType'
    FROM
          sysobjects Sys1 JOIN sysobjects Sys2 ON Sys1.parent_obj = Sys2.[id]
    WHERE Sys1.xtype='TR'
    ORDERBY TableName

    在SQL Server 2005里,首选的技术是使用系统视图。这种方式会把你的查询同微软选择对系统表格进行的任何改变隔绝开来。

    下面是一个简单的例子,它使用了INFORMATION_SCHEMA_TABLES视图:

    SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE
    FROMINFORMATION_SCHEMA.TABLES
    ORDERBY TABLE_SCHEMA, TABLE_NAME

    对于AdventureWorks数据库或者任何你自己的数据库,使用这个查询可以产生一个表格快速列表。

    为了说明这些架构查询的能力,看下面的语句,它们列出所选数据库里所有的函数和存储过程。

    SELECT*FROMINFORMATION_SCHEMA.ROUTINES
    ORDERBY ROUTINE_TYPE, ROUTINE_NAME

    市面上有20种这样的信息架构视图。如果你需要将数据库归档,而且无法承担商业解决方案,例如Red Gate或者Apex提供的方案的话,那么通过这些视图和一点点试验,你就可以让SQL Server给自己生成文档了。

  • 相关阅读:
    pipelinewise 学习二 创建一个简单的pipeline
    pipelinewise 学习一 docker方式安装
    Supercharging your ETL with Airflow and Singer
    ubuntu中使用 alien安装rpm包
    PipelineWise illustrates the power of Singer
    pipelinewise 基于singer 指南的的数据pipeline 工具
    关于singer elt 的几篇很不错的文章
    npkill 一个方便的npm 包清理工具
    kuma docker-compose 环境试用
    kuma 学习四 策略
  • 原文地址:https://www.cnblogs.com/zhuor/p/635808.html
Copyright © 2011-2022 走看看