Viste degli schemi delle informazioni (Transact-SQL)

Una vista dello schema delle informazioni rappresenta uno dei metodi disponibili in SQL Server per ottenere metadati.

Nota importanteImportante

Alle viste degli schemi delle informazioni sono state apportate alcune modifiche che non garantiscono la compatibilità con le versioni precedenti. Tali modifiche sono descritte negli argomenti specifici relativi alle viste interessate.

[!NOTA]

Le viste degli schemi delle informazioni offrono una panoramica interna dei metadati di SQL Server indipendente dalle tabelle di sistema, nonché garantiscono il corretto funzionamento delle applicazioni anche se sono state apportate modifiche significative alle tabelle di sistema sottostanti. Le viste degli schemi delle informazioni incluse in SQL Server sono conformi alla definizione dello standard ISO per INFORMATION_SCHEMA.

Per i riferimenti al server corrente, SQL Server supporta i nomi composti da tre parti. La stessa convenzione di denominazione viene adottata anche dallo standard ISO. I nomi utilizzati nelle due convenzioni di denominazione sono tuttavia diversi. Le viste degli schemi delle informazioni sono definite in uno schema speciale denominato INFORMATION_SCHEMA. Questo schema è incluso in ogni database. Ogni vista dello schema delle informazioni include metadati per tutti gli oggetti dati archiviati nel database specifico. Nella tabella seguente sono riportate le relazioni tra i nomi di SQL Server e i nomi SQL standard.

Nome di SQL Server

Nome SQL standard equivalente

Database

Catalogo

Schema

Schema

Oggetto

Oggetto

tipo di dati definito dall'utente (alias)

Dominio

Questa convenzione di mapping dei nomi è valida per le viste di SQL Server compatibili con lo standard ISO riportate di seguito.

Alcune viste contengono riferimenti a classi di dati diverse, ad esempio dati di tipo carattere o dati binari.

Come mostrato nell'esempio seguente, quando si fa riferimento alle viste dello schema delle informazioni, è necessario utilizzare un nome completo che includa il nome schema INFORMATION_SCHEMA.

USE AdventureWorks;
GO

SELECT ccu.TABLE_SCHEMA, ccu.TABLE_NAME, ccu.COLUMN_NAME, cc.CONSTRAINT_SCHEMA, cc.CONSTRAINT_NAME, cc.CHECK_CLAUSE
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS AS cc
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS ccu
    ON cc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME;