2010-10-02 33 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

相關問題