有关SQL SERVER系统对象的问题

时间:2009-07-03 17:57:48

标签: sql-server

我有几个问题。

1)为什么我们不能在Master / Model / MSBD等下看到系统表(如sysobjects)?但是我们

可以查询。我们基本上是在查询视图吗,因为它们是主要的表格

拥有一个有能力的信息?

与“SELECT * FROM sysobjects”类似。我们基本上是在查询一些观点吗?

2)为什么我们不能在系统表中添加触发器?

提前致谢

2 个答案:

答案 0 :(得分:2)

SQL Server 2008系统表(http://msdn.microsoft.com/en-us/library/ms179932.aspx)已实现为只读视图。无法直接使用这些系统表中的数据。您可以使用目录视图访问SQL Server元数据。请查看此链接http://msdn.microsoft.com/en-us/library/ms174365.aspx

可以在系统表上创建触发器,但通常不建议这样做。请查看此http://www.sql-server-performance.com/faq/trigger_system_table_p1.aspx

欢呼声

答案 1 :(得分:1)

自SQL 2005以来,目录视图实现为Resource Database(mssqlsystemresource)中声明的视图。由于某种特殊的魔力,它们似乎存在于每个数据库中。

您始终可以使用执行计划来查看这些视图从哪些实际表中获取数据。使用DAC连接进行连接时,可以访问基础表。以任何方式修改系统表将标记数据库,并且每次数据库启动时都会记录一条消息。

支持修改后的数据库,因此如果出现问题,您就无法寻求支持。