GUI's zoals SSMS of Azure Data Studio maken het gemakkelijk om het gegevenstype van een kolom te zien. Meestal is het een kwestie van navigeren naar de kolom in de objectverkenner en kunt u het gegevenstype direct naast de kolom zien.
Maar als u T-SQL gebruikt, moet u een query uitvoeren.
De information_schema.columns
Bekijk
De information_schema.columns
weergave is een goede optie als u alleen het gegevenstype wilt en niet meer:
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';
Voorbeeld resultaat:
+---------------+-------------+--------------+----------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | |---------------+-------------+--------------+----------------| | ProductName | varchar | 255 | 255 | +---------------+-------------+--------------+----------------+
Vervang Products
en ProductName
met respectievelijk de naam van uw tabel en kolom.
OK, ik heb hier iets meer teruggegeven dan alleen het gegevenstype. Maar u kunt desgewenst de andere kolommen weglaten. Of u kunt meer toevoegen. Er zijn bijvoorbeeld kolommen die de precisie van de kolom bevatten voor het geval u naar een numerieke of datetime-kolom kijkt.
U kunt alle kolommen als volgt retourneren:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
De sys.columns
Bekijk
De sys.columns
bekijken is een andere optie. We kunnen dit samenvoegen met de sys.tables
bekijken om een specifieke kolom uit een specifieke tabel te halen:
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';
Voorbeeld resultaat:
+-------------+---------------+-------------+--------------+-------------+---------+ | name | system_type | user_type | max_length | precision | scale | |-------------+---------------+-------------+--------------+-------------+---------| | ProductName | varchar | varchar | 255 | 0 | 0 | +-------------+---------------+-------------+--------------+-------------+---------+
Nogmaals, voeg indien nodig meer of minder kolommen toe.
In dit voorbeeld heb ik de TYPE_NAME()
. gebruikt functie om de naam van het gegevenstype te retourneren, op basis van zijn ID. Hierdoor hoefde ik geen join te doen op de sys.types
tafel.
De sp_help
Opgeslagen procedure
De sp_help
opgeslagen procedure kan handig zijn als u meer informatie over de tabel wilt retourneren.
Deze opgeslagen procedure retourneert informatie over een databaseobject (elk object dat wordt vermeld in de sys.sysobjects
compatibiliteitsweergave), een door de gebruiker gedefinieerd gegevenstype of een gegevenstype:
EXEC sp_help Products;
Dit levert veel output op, dus ik zal het hier niet allemaal opsommen.
Vervang gewoon Products
met de naam van de tafel of een ander object waarover u informatie wilt krijgen.
Het gegevenstype van een kolom uit een query halen
U kunt ook het gegevenstype van de kolommen ophalen die door een query worden geretourneerd.
Zie Ontdek het gegevenstype van de kolommen die worden geretourneerd in een resultatenset in SQL Server voor meer informatie en voorbeelden.