Στον SQL Server 2005, και φυσικά υπάρχει και στο SQL Server 2008, πρωτοεμφανίστηκε μια νέα system database η Resource Database.
Η database αυτή περιέχει όλα τα read-only critical system tables, metadata, και stored procedures τα οποία ο SQL Server χρειάζεται για τρέξει.
Δεν περιέχει πληροφορίες για το SQL Server instance ή για τις databases σας, και αυτό γιατί δημιουργήται κατά την διαδικασία εγκατάστασης του SQL Server ή όταν εγκαταστήσουμε κάποιο service pack. Περιέχει δε όλα τα objects (table, stored procedures) τα οποία χρησιμοποιούμε σε όλες τις δικίες μας databases.
H Resource Database βρήσκεται στο directory DATA που έχουμε στήσει τον SQL Server και το όνομα των αρχείων της είναι mssqlsystemresource τόσο για το .mdf όσο και για το .ldf. Εάν έχω πολλά SQL Server instances για κάθε ένα από αυτά έχω και διαφορετική Resource Database.
Την Resource Database δεν μπορούμε να την δούμε μέσα από τον Management Studio και δεν μπορούμε να την αλλάξουμε. Σε πολύ ειδικές περιπτώσεις και μόνο με συμβουλή του Microsoft Support επιτρέπεται να γίνει κάτι τέτοιο.
Την συγκεκριμένη database δεν την βάζουμε σε encrypted ή compressed drive, διότι αυτό μπορεί να οδήγήσει σε upgrade ή performance issues.
Όμως ποιά είναι πρακτική αξία αυτής της system database;
Στον SQL Server 2000 όταν κάναμε upgrade αυτόν με κάποιο patch ή service pack, παρατηρούσαμε ότι έπρεπε να τρέξουν κάποια μεγάλα scripts τα οποία στην ουσία έκαναν drop και recreate system objects. Εκτός του ότι η συγκεκριμένη διαδικασία ήταν μεγάλη σε χρόνο δεν μας έδινε την δυνατότητα να κάνουμε rollback στην προηγούμενη έκδοση που είχαμε. Στους SQL Servers 2005 & 2008 κάτι τέτοιο δεν γίνεται και αυτό γιατί είτε ρίχνουμε patch είτε service pack αυτό στην ουσία κάνει override την υπάρχουσα Resource Database. Την οποία αν την έχουμε πάρει αντίγραφο πριν την εγκατάσταση του patch ή του service pack διασφαλίζουμε την εύκολη επιστρoφή μας στην προηγούμενη έκδοση.