理解SQL_Server系统表sysobjects
来源:互联网 发布:北大青鸟java好吗 编辑:程序博客网 时间:2024/04/30 05:25
关于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给自己生成文档了。
- 理解SQL_Server系统表sysobjects
- 理解SQL Server系统表sysobjects
- 理解SQL Server系统表sysobjects(摘)
- 理解SQL Server系统表sysobjects
- 系统表 sysobjects
- SqlServer Sysobjects系统表
- 理解SQL Server系统表格sysobjects
- Sysobjects系统表的内容
- 系统表sysobjects的用法
- SQL Server系统表sysobjects
- 基于 SQL的sysobjects系统表
- sql系统表sysobjects对应type值
- SQL Server sysobjects 系统表说明
- SQL Server 常用系统表(一) sysobjects
- Sysobjects表
- SQL 系统表 Sysobjects 和 SysColumns 表的一些知识
- 系统表sysobjects、sysindexes、syscolumns损坏修复方法
- 关于SQL Server中的系统表——sysobjects
- 给DataList中列出的图片列表提供预览图片功能
- tonyja
- jquery 解析json
- jquery in array
- MySQL中遗忘root密码解决方法分享(转)
- 理解SQL_Server系统表sysobjects
- ExtJs Combobox 二级联动
- 一些比较重要的算法
- js 复制内容到剪贴板(兼容IE,Firefox)
- 源码下载
- Android权限说明(转)
- VC拦截XP关机的方法
- buffalo LG-GL恢复系统
- silverlight项目部署问题,增加MINE类型