2010-10-02 32 views
0

子问题[1]和[2]。
SQL Server存储服务器对象在哪里?服务器对象在SQL Server中的存储位置

为什么呢?

更新:
这个问题被定义为subquestion和引题背景...

我应该明白,sql_policy_trigger答案,在服务器显示的对象\触发SSMS(MS SQL服务器的对象资源管理器R2)存储在主数据库中?


===== UPDATE2:
请给我MSDN文档的引用在你的答案(S)。

系统或服务器配置对象,元信息或目录存储在数据库中并不明显。对于前,FTS目录不存储在数据库中,但在文件(系统),等等

[3](BOL2005-2008R2)告知:

  • “主数据库

    记录所有的SQL Server“

    • ”在SQL Server实例的系统级信息,系统对象不再存储在主数据库; 相反,它们被保存在资源数据库

因此,它是实例范围内(而不是服务器范围),并清楚地提到了‘系统’。
以及暗示“他们”不存储在主数据库中。

此外,我想了解为什么SSMS允许脚本服务器对象(例如,在服务器对象下的对象资源管理器中右键单击 - > syspolicy_server_trigger上的触发器 - >脚本服务器触发器为... - - >),例如,系统视图不具有这种可能性。


引:
[1] 哪里服务器触发保存在SQL Server?
Where does a Server trigger save in SQL Server?
[2]
“系统对象”与SQL Server中的“服务器对象” - 术语定义?
"system objects" vs. "server objects" in SQL Server - terms definitions?
[3]
主数据库
[图3a]
(SQL Server 2008的R2联机丛书)
http://msdn.microsoft.com/en-us/library/ms187837.aspx
[图3b]
(SQL Server 2005联机丛书)
http://msdn.microsoft.com/en-us/library/ms187837(v=SQL.90).aspx

回答

4

sys.objects,sys.indexes等(按照您的触发器问题)。请参阅MSDN

至于为什么,关系数据库不妨使用关系结构来存储自己的信息,没有Object catalog views?除了所使用的几个注册表设置启动,几乎设置和对象是stored in a table somewhere在SQL Server中。

例子:

编辑,我不得不疏通我的记忆为什么会这样...

Rule zero in Codd's law

系统必须有资格作为 关系,作为一个数据库,并作为 管理系统。对于系统 资格作为一个关系型数据库 管理系统(RDBMS),该系统 必须使用其关联设施 (独家)来管理数据库。

这忽略了“关系”清教徒和狂热者,但解释了为什么使用sys.objects等。

编辑:

制作什么OP真正想要猜...服务器级别的对象存储在主数据库。

+0

它看起来像你对我引用的视图和数据库范围(或特定数据库)的人,而我询问的对象和服务器范围内的人的存储位置。 – 2010-10-02 10:04:12

+1

你没有阅读我的回答或任何链接?有* all *对象的目录(sys.server_principals,sys.configurations等)。否则,请澄清您的问题,以便我们回答您真正想知道的内容。不要批评那些试图回答含糊不清的问题的人。 – gbn 2010-10-02 10:06:15

相关问题