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