失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 理解SQL Server系统表格sysobjects

理解SQL Server系统表格sysobjects

时间:2022-05-13 09:23:17

相关推荐

理解SQL Server系统表格sysobjects

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习推荐的理解SQL Server系统表格sysobjects,过去的都会过去,迎接崭新的开始,释放更美好的自己。

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

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

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

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 0 THEN'Delete'

WHEN 0 THEN'Insert'

WHEN 0 THEN'Update'

END'TriggerType'

FROM

sysobjects Sys1 JOIN sysobjects Sys2 ON = Sys2.[id]

WHERE &#&#;

ORDERBY TableName

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

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

SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE

ORDERBY TABLE_SCHEMA, TABLE_NAME

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

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

SELECT*

ORDERBY ROUTINE_TYPE, ROUTINE_NAME

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

如果觉得《理解SQL Server系统表格sysobjects》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。