Database di sistema

Si applica a: SQL Server, Database SQL di Azure e Istanza gestita di SQL di Azure

SQL Server include i database di sistema seguenti.

Database di sistema Descrizione
Database master Registra tutte le informazioni di sistema per un'istanza di SQL Server.
Database msdb Utilizzato da SQL Server Agent per la pianificazione di avvisi e processi.
Database model Utilizzato come modello per tutti i database creati in un'istanza di SQL Server. Le modifiche apportate al database model , ad esempio per quanto riguarda dimensioni, regole di confronto, modello di recupero e altre opzioni del database, vengono applicate a tutti i database creati successivamente.
Database Resource Database di sola lettura che contiene gli oggetti di sistema inclusi in SQL Server. Gli oggetti di sistema sono fisicamente mantenuti nel database Resource ma appaiono logicamente nello schema sys di ogni database.
Database tempdb Area di lavoro per l'archiviazione di oggetti temporanei o set di risultati intermedi.

Importante

Per i singoli database e i pool elastici di database SQL di Azure, si applicano solo il database master e il database tempdb. Per altre informazioni, vedere Informazioni sul server di database SQL di Azure. Per una descrizione di tempdb nel contesto del database SQL di Azure, vedere Database tempdb nel database SQL. Per Istanza gestita di SQL di Azure si applicano tutti i database di sistema. Per altre informazioni sulle istanze gestite nel database SQL di Azure, vedere Informazioni su Istanza gestita

modifica dei dati di sistema

SQL Server non supporta l'aggiornamento diretto delle informazioni da parte degli utenti in oggetti di sistema, ad esempio tabelle di sistema, stored procedure di sistema e viste del catalogo. SQL Server offre, tuttavia, un set completo di strumenti di amministrazione che consentono agli utenti di amministrare completamente il sistema e gestire tutti gli utenti e gli oggetti di un database. Di seguito sono elencate le quattro opzioni disponibili.

  • Utilità di amministrazione, ad esempio SQL Server Management Studio.

  • API SQL-SMO. Consente ai programmatori di includere nelle proprie applicazioni funzionalità complete di amministrazione di SQL Server.

  • Script Transact-SQL e stored procedure. Possono utilizzare stored procedure di sistema e istruzioni DDL Transact-SQL.

Questi strumenti proteggono le applicazioni dalle modifiche negli oggetti di sistema. Talvolta, ad esempio, SQL Server deve modificare le tabelle di sistema nelle nuove versioni di SQL Server per garantire il supporto per nuove funzionalità aggiunte alla versione. Le applicazioni che eseguono istruzioni SELECT che fanno riferimento diretto alle tabelle di sistema spesso si basano sul formato precedente delle tabelle. Può capitare che, per eseguire l'aggiornamento a una nuova versione di SQL Server, le aziende debbano prima riscrivere le applicazioni che eseguono la selezione dalle tabelle di sistema. SQL Server tratta stored procedure di sistema, DDL e SQL-SMO come interfacce pubblicate e fa il possibile per mantenerne la compatibilità con le versioni precedenti.

SQL Server non supporta i trigger definiti nelle tabelle di sistema, in quanto potrebbero modificare il funzionamento del sistema.

Nota

I database di sistema non possono trovarsi in directory di condivisione UNC.

visualizzazione dei dati di database di sistema

È sconsigliabile definire istruzioni Transact-SQL che eseguono query dirette sulle tabelle di sistema, a meno che non si tratti dell'unico modo per ottenere le informazioni richieste dall'applicazione. Le applicazioni devono invece ottenere le informazioni di sistema e del catalogo utilizzando gli elementi seguenti:

  • Viste del catalogo di sistema

  • SQL-SMO

  • Interfaccia di Strumentazione gestione Windows (WMI, Windows Management Instrumentation)

  • Funzioni, metodi, attributi o proprietà del catalogo dell'API dei dati utilizzata dall'applicazione, ad esempio ADO, OLE DB o ODBC

  • Stored procedure di sistema e funzioni predefinite Transact-SQL.