Graficzne interfejsy użytkownika, takie jak SSMS lub Azure Data Studio, ułatwiają wyświetlanie typu danych kolumny. Zwykle wystarczy przejść do kolumny w eksploratorze obiektów, a typ danych można zobaczyć tuż obok kolumny.
Ale jeśli używasz T-SQL, musisz uruchomić zapytanie.
Kolumny information_schema.columns
Zobacz
Kolumny information_schema.columns
widok to dobra opcja, jeśli chcesz po prostu typ danych i nic więcej:
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';
Przykładowy wynik:
+---------------+-------------+--------------+----------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | |---------------+-------------+--------------+----------------| | ProductName | varchar | 255 | 255 | +---------------+-------------+--------------+----------------+
Zastąp Products
i ProductName
z nazwą odpowiednio tabeli i kolumny.
OK, zwróciłem tutaj trochę więcej niż tylko typ danych. W razie potrzeby możesz jednak pominąć inne kolumny. Lub możesz dodać więcej. Na przykład istnieją kolumny, które zawierają precyzję kolumny na wypadek, gdybyś patrzyła na kolumnę liczbową lub datę-godzinę.
Możesz zwrócić wszystkie kolumny w ten sposób:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
Kolumny sys.columns
Zobacz
sys.columns
widok to kolejna opcja. Możemy dołączyć do tego za pomocą sys.tables
widok, aby uzyskać konkretną kolumnę z określonej tabeli:
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';
Przykładowy wynik:
+-------------+---------------+-------------+--------------+-------------+---------+ | name | system_type | user_type | max_length | precision | scale | |-------------+---------------+-------------+--------------+-------------+---------| | ProductName | varchar | varchar | 255 | 0 | 0 | +-------------+---------------+-------------+--------------+-------------+---------+
Ponownie dołącz więcej lub mniej kolumn zgodnie z wymaganiami.
W tym przykładzie użyłem TYPE_NAME()
funkcja zwracająca nazwę typu danych na podstawie jego identyfikatora. Uratowało mnie to przed koniecznością łączenia w sys.types
tabela.
sp_help
Zapisana procedura
sp_help
procedura składowana może być przydatna, jeśli chcesz zwrócić więcej informacji o tabeli.
Ta procedura składowana zwraca informacje o obiekcie bazy danych (dowolny obiekt wymieniony w sys.sysobjects
widok zgodności), typ danych zdefiniowany przez użytkownika lub typ danych:
EXEC sp_help Products;
Zwraca to dużo danych wyjściowych, więc nie będę ich tutaj wymieniać.
Wystarczy wymienić Products
z nazwą tabeli lub innego obiektu, o którym chcesz uzyskać informacje.
Pobierz typ danych kolumny z zapytania
Możesz również uzyskać typ danych kolumn zwróconych przez zapytanie.
Zobacz Znajdź typ danych kolumn zwróconych w zestawie wyników w SQL Server, aby uzyskać więcej informacji i przykładów.