Why has SQL Server to duplicate a hundred of system views from model database into each user-defined database instead of keeping them centralised (for example, as it keeps server objects) and using them in specific context of specific database when asked/needed?
Aren't they (for example, definitions/script of a system view) common between databases?
Update:
I still could not get it:
1)
In order to execute a view in context of another database there is no need to copy view definitions into each database (just extract view def and execute in context of specific database).
So, why to multiplicate copies?
2)
Then, I am still confused what is stored where?
[1] (BOL2005[1a]-2008R2[1b]) tells that:
"In SQL Server, system objects are no longer stored in the master database; instead, they are stored in the Resource database"
Also, I would like to understand why SSMS permits to script server objects (for ex., right-click in Object Explorer under Server Objects --> Triggers on syspolicy_server_trigger --> Script Server Trigger as...---> ) while, for ex., system views do not have such possibility.
What does make them different? Where are they, resp., stored?
Cited:
[1] master Database
[1a]
(SQL Server 2008 R2 Books Online)
http://msdn.microsoft.com/en-us/library/ms187837.aspx
[1b]
(SQL Server 2005 Books Online)
http://msdn.microsoft.com/en-us/library/ms187837(v=SQL.90).aspx