GUI come SSMS o Azure Data Studio semplificano la visualizzazione del tipo di dati di una colonna. Di solito è semplice passare alla colonna in Esplora oggetti e puoi vedere il tipo di dati proprio accanto alla colonna.
Ma se stai usando T-SQL, dovrai eseguire una query.
Il information_schema.columns
Visualizza
Il information_schema.columns
view è una buona opzione se vuoi semplicemente il tipo di dati e non di più:
SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
Esempio di risultato:
+---------------+-------------+--------------+----------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | |---------------+-------------+--------------+----------------| | ProductName | varchar | 255 | 255 | +---------------+-------------+--------------+----------------+
Sostituisci Products
e ProductName
rispettivamente con il nome della tabella e della colonna.
OK, ho restituito un po 'più del semplice tipo di dati qui. Ma puoi omettere le altre colonne se necessario. Oppure puoi aggiungerne altri. Ad esempio, ci sono colonne che contengono la precisione della colonna nel caso tu stia guardando una colonna numerica o data/ora.
Puoi restituire tutte le colonne in questo modo:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
Il sys.columns
Visualizza
Il sys.columns
la vista è un'altra opzione. Possiamo unirci a questo con sys.tables
view per ottenere una colonna specifica da una tabella specifica:
SELECT
c.name,
type_name(c.system_type_id) AS system_type,
type_name(c.user_type_id) AS user_type,
c.max_length,
c.precision,
c.scale
FROM sys.tables t
JOIN sys.columns c ON t.object_id = c.object_id
WHERE t.name = 'Products'
AND c.name = 'ProductName';
Esempio di risultato:
+-------------+---------------+-------------+--------------+-------------+---------+ | name | system_type | user_type | max_length | precision | scale | |-------------+---------------+-------------+--------------+-------------+---------| | ProductName | varchar | varchar | 255 | 0 | 0 | +-------------+---------------+-------------+--------------+-------------+---------+
Anche in questo caso, includi più o meno colonne come richiesto.
In questo esempio, ho usato TYPE_NAME()
funzione per restituire il nome del tipo di dati, in base al suo ID. Questo mi ha evitato di dover fare un join su sys.types
tabella.
Il sp_help
Procedura memorizzata
Il sp_help
stored procedure può essere utile se si desidera restituire maggiori informazioni sulla tabella.
Questa procedura memorizzata restituisce informazioni su un oggetto database (qualsiasi oggetto elencato in sys.sysobjects
visualizzazione compatibilità), un tipo di dati definito dall'utente o un tipo di dati:
EXEC sp_help Products;
Questo restituisce molto output, quindi non lo elencherò tutto qui.
Sostituisci semplicemente Products
con il nome della tabella o altro oggetto di cui vuoi ottenere informazioni.
Ottieni il tipo di dati di una colonna da una query
Puoi anche ottenere il tipo di dati delle colonne restituite da una query.
Per ulteriori informazioni ed esempi, vedere Scopri il tipo di dati delle colonne restituite in un set di risultati in SQL Server.