A seconda della versione di SQL Server in esecuzione, il metodo per l’interrogazione e la restituzione di un elenco di tutte le tabelle create dall’utente potrebbe differire leggermente. Di seguito esamineremo brevemente le istruzioni TSQL che possono essere utilizzate per recuperare un elenco di tabelle sia per SQL Server 2000 precedente che per la versione 2005 più recente o successiva.,
Elenco delle tabelle in SQL Server 2000
Per le versioni precedenti di SQL Server (come SQL Server 2000, sebbene questo metodo sia supportato anche in SQL Server 2005 per la compatibilità con le versioni precedenti), è necessario interrogare la vista metadatiSYS.SYSOBJECTS
. SYS.SYSOBJECTS
contiene una riga per ogni oggetto che è stato creato nel database, tra cui stored procedures
views
e user tables
(che sono un importante distinguere da system tables
.,)
La tabella SYSOBJECTS
ospita un paio di dozzine di colonne di dati poiché deve contenere informazioni su praticamente tutto ciò che viene aggiunto al server nel tempo. Pertanto, per trovare un elenco di tabelle (ignorando system tables
), abbiamo bisogno di trovare i risultati in cui l’ xtype
colonna (che specifica il object type
per riga) è uguale al valore U
che sta per user table
., La risultante istruzione TSQL, dovrebbe assomigliare a questa:
SELECT *FROM SYSOBJECTSWHERE xtype = 'U';GO
Nota: Dal momento che SYSOBJECTS
sono parte del SYS
namespace, quando si esegue una query SYSOBJECTS
non è necessario specificare che il SYSOBJECTS
fa parte della global SYS
spazio dei nomi, in modo che possiamo omettere, come mostrato nell’esempio di cui sopra.
Questo restituirà un elenco di risultati di tutte le tabelle create dall’utente., Poiché la quantità di informazioni restituito quando l’interrogazione di tutte le colonne è abbastanza grande, si potrebbe desiderare di tagliare i risultati da visualizzare solo i name
colonna e, forse, il crdate
(data di nascita):
SELECT name, crdateFROM SYSOBJECTSWHERE xtype = 'U';GO
Elenco Tabelle in SQL Server 2005 o versioni più Recenti
Elenco di tutte le tabelle in SQL server quando si utilizza una versione più recente (SQL 2005 o superiore) è una questione di interrogare il INFORMATION_SCHEMA
opinioni che vengono create automaticamente in SQL Server., Questi consentono di visualizzare facilmente un’ampia varietà di metadati per questa particolare istanza di SQL Server, incluse le informazioni su COLUMNS
, ROUTINES
e persino TABLES
.
Si può notare che ci sono quattro colonne restituite quando si utilizza il tag INFORMATION_SCHEMA.TABLES
vista, ma il più importante colonna TABLE_TYPE
, che determina se la tabella nella riga di una tabella (BASE TABLE
) o vista (VIEW
).,
Per tornare tutte le tabelle e le viste in una query, eseguire la seguente istruzione TSQL:
SELECT *FROM INFORMATION_SCHEMA.TABLES;GO
può anche essere saggio per specificare il database che si desidera eseguire la query:
SELECT *FROM databaseName.INFORMATION_SCHEMA.TABLES;GO
Se si desidera recuperare le tabelle effettive e filtrare vista dai risultati, aggiungere un WHERE TABLE_TYPE = 'BASE TABLE'
clausola:
SELECT *FROM databaseName.INFORMATION_SCHEMA.TABLESWHERE TABLE_TYPE = 'BASE TABLE';GO