GUI'er som SSMS eller Azure Data Studio gør det nemt at se en kolonnes datatype. Normalt er det et simpelt spørgsmål om at navigere til kolonnen i objektudforskeren, og du kan se datatypen lige ved siden af kolonnen.
Men hvis du bruger T-SQL, skal du køre en forespørgsel.
information_schema.columns Vis
information_schema.columns view er en god mulighed, hvis du blot ønsker datatypen og ikke mere:
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';ProductName' Eksempelresultat:
+---------------+-------------+--------------+- ---------------+| COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH ||---------------+-------------+--------------+-- --------------|| Produktnavn | varchar | 255 | 255 |+--------------------------------- --------------+
Erstat Products og ProductName med navnet på henholdsvis din tabel og kolonne.
OK, jeg returnerede lidt mere end blot datatypen her. Men du kan udelade de andre kolonner, hvis det er nødvendigt. Eller du kan tilføje flere. Der er f.eks. kolonner, der indeholder kolonnens præcision, hvis du ser på en numerisk kolonne eller en dato og klokkeslæt.
Du kan returnere alle kolonner sådan her:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName'; sys.columns Vis
sys.columns view er en anden mulighed. Vi kan tilslutte dette med sys.tables visning for at få en bestemt kolonne fra en bestemt tabel:
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'; Eksempelresultat:
+-------------+---------------+-------------+-- ------------+-------------+---------+| navn | system_type | brugertype | max_længde | præcision | skala ||-------------+---------------+-------------+--- ----------+-------------+--------|| Produktnavn | varchar | varchar | 255 | 0 | 0 |+-------------+---------------+-------------+---- -----------+-------------+---------+
Igen, medtag flere eller færre kolonner efter behov.
I dette eksempel brugte jeg TYPE_NAME() funktion for at returnere navnet på datatypen baseret på dens ID. Dette reddede mig fra at skulle deltage på sys.types tabel.
sp_help Lagret procedure
sp_help lagret procedure kan være nyttig, hvis du ønsker at returnere flere oplysninger om tabellen.
Denne lagrede procedure returnerer information om et databaseobjekt (ethvert objekt, der er angivet i sys.sysobjects kompatibilitetsvisning), en brugerdefineret datatype eller en datatype:
EXEC sp_help Products; Dette returnerer en masse output, så jeg vil ikke liste det hele her.
Bare udskift Products med navnet på tabellen eller andet objekt, du ønsker at få information om.
Få en kolonnes datatype fra en forespørgsel
Du kan også få datatypen for kolonnerne returneret af en forespørgsel.
Se Find ud af datatypen for de kolonner, der returneres i et resultatsæt i SQL Server for at få flere oplysninger og eksempler.