• sknox (2/11/2011)


    The best answer I could find to that was here:

    http://www.sqldev.org/sql-server-setup--upgrade/moving-resource-database-in-sql-server-2008-doesnot-work-96677.shtml

    which shows that SQL Server 2008+ has a hardcoded process at startup that attaches the resource database from the same location as the executable file*, but doesn't explain why Microsoft has chosen to make it do that. I haven't seen a reason from Microsoft.

    I haven't either, but I think I can guess.

    The reason the resource database was introduced was to make applying service packs easier. Instead of dropping and creating system objects in the master database, the SP executable simply replaces the MDF file for the resource database. This was described in one of the links mentioned in this topic.

    So I guess that having to search for the current location of the resource database felt like too much work for too little gain. One simple, immutable, hardcoded location is the easiest possibility.

    Or they had bad experiences with customers placing the resource DB on a bad spot and expecting MS to fix the mess, and wanted to avoid those problems going forward.


    Hugo Kornelis, SQL Server/Data Platform MVP (2006-2016)
    Visit my SQL Server blog: https://sqlserverfast.com/blog/
    SQL Server Execution Plan Reference: https://sqlserverfast.com/epr/