Czy istnieje instrukcja SQL, która może zwrócić typ kolumny w tabeli?Instrukcja SQL, aby uzyskać typ kolumny
Odpowiedz
Korzystanie z SQL Server:
SELECT DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'yourTableName' AND
COLUMN_NAME = 'yourColumnName'
Tylko jeśli nie chcesz wyświetlać odpowiedniej nazwy kolumny. Zwróci to tylko typy. Jeśli chcesz zobaczyć nazwę kolumny, do której należy ten typ, będziesz musiał wybrać COLUMN_NAME również ... – HackyStack
Jeśli twoja tabela nie ma domyślnego schematu, możesz przedłużyć warunek za pomocą 'AND TABLE_SCHEMA = 'yourSchema'' – luviktor
jest świetny - ale czy możliwe jest również zwrócenie zakresu dla typu kolumny? tj. 'varchar (255)' zamiast 'varchar' i' int (11) 'zamiast' int'? – mmcrae
w TSQL/MSSQL to wygląda:
SELECT t.name, c.name
FROM sys.tables t
JOIN sys.columns c ON t.object_id = c.object_id
JOIN sys.types y ON y.system_type_id = c.system_type_id
WHERE t.name = ''
Jeśli używasz MySQL można spróbować
SHOW COLUMNS FROM `tbl_name`;
przeciwnym razie powinieneś być w stanie zrobić
DESCRIBE `tbl_name`;
USE [YourDatabaseName]
GO
SELECT column_name 'Column Name',
data_type 'Data Type'
FROM information_schema.columns
WHERE table_name = 'YourTableName'
GO
Spowoduje to wyświetlenie wartości Nazwa kolumny, pokazującej nazwy kolumn oraz Typy danych tych kolumn (pliki wewnętrzne, varchary itp.).
Najłatwiej w TSQL jest:
SELECT COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'yourTableName'
Dla IBM DB2:
SELECT TYPENAME FROM SYSCAT.COLUMNS WHERE TABSCHEMA='your_schema_name' AND TABNAME='your_table_name' AND COLNAME='your_column_name'
w Oracle SQL byłoby to zrobić:
SELECT
DATA_TYPE
FROM
all_tab_columns
WHERE
table_name = 'TABLE NAME' -- in uppercase
AND column_name = 'COLUMN NAME' -- in uppercase
W moim przypadku potrzebowałem uzyskać typ danych dla Dynamic SQL (Shudder!), Tak czy inaczej tutaj jest funkcja, którą stworzyłem, która zwraca pełny typ danych. Na przykład zamiast wrócić „dziesiętny” byłoby powrócić dziesiętnego (18,4): dbo.GetLiteralDataType
dla SQL Server, ta procedura systemu przechowywane powróci wszystkie informacje o tabeli, w tym typów danych kolumn:
exec sp_help YOURTABLENAME
Podniosłem głos, ponieważ nie jest to dokładnie odpowiedź, ale dostarcza mi cennych informacji. Na przykład. informacje "IsComputed", których nie znalazłem w schemacie Information, ale mogę znaleźć w kodzie procedury sp_help i skopiować z tego. – Christoph
Działa również w widokach ... –
Korzystanie TSQL/MSSQL
To zapytanie będzie Ci: nazwa tabeli, nazwę kolumny, typ danych, długość typ danych, a dopuszczalne wartości null
SELECT TABLE_NAME,COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'your_table_name'
ö rzeczą, która musi zostać zmieniona, jest your_table_name.
Korzystanie TSQL/MSSQL
Można użyć INTO
słowa kluczowego.
Wynikiem SELECT
w tabeli i
przykład: select .... INTO real_table_name
Po
sp_help real_table_name
użytkowania tego zapytania uzyskania schematu tabeli, kolumny typ, maksymalna długość, is_nullable
SELECT QUOTENAME(SCHEMA_NAME(tb.[schema_id])) AS 'Schema'
,QUOTENAME(OBJECT_NAME(tb.[OBJECT_ID])) AS 'Table'
,C.NAME as 'Column'
,T.name AS 'Type'
,C.max_length
,C.is_nullable
FROM SYS.COLUMNS C INNER JOIN SYS.TABLES tb ON tb.[object_id] = C.[object_id]
INNER JOIN SYS.TYPES T ON C.system_type_id = T.user_type_id
WHERE tb.[is_ms_shipped] = 0
ORDER BY tb.[Name]
Kolejna zmiana przy użyciu MS SQL:
SELECT TYPE_NAME(system_type_id)
FROM sys.columns
WHERE name = 'column_name'
AND [object_id] = OBJECT_ID('[dbo].[table_name]');
Dla Spark SQL:
DESCRIBE [db_name.]table_name column_name
- 1. Instrukcja SQL, aby uzyskać wszystkich klientów bez zamówień.
- 2. używać kwerendy, aby uzyskać dostęp opis kolumny w SQL
- 3. Instrukcja SQL select, która pokazuje nieistniejącą kolumnę?
- 4. Instrukcja aktualizacji - kolumna Geografia - serwer sql
- 5. Instrukcja SQL, aby wybrać wszystkie wiersze z poprzedniego dnia
- 6. Instrukcja SQL, aby znaleźć ostatnie słowo w ciągu znaków
- 7. PL/SQL: czy istnieje instrukcja, aby całkowicie zatrzymać wykonywanie skryptu?
- 8. Instrukcja SQL Server wstawiająca za pomocą INSERTED, aby uzyskać nowy identyfikator i istniejący identyfikator
- 9. Fałszywy długo działa instrukcja SQL
- 10. SQL Server: rekurencyjne instrukcja aktualizacji
- 11. Pobierz typ danych kolumny SQL Server za pomocą C#
- 12. określić typ danych z kolumny aliasu w SQL Server 2008
- 13. Jak uzyskać typ danych kolumny w Oracle z PL-SQL z niskimi uprawnieniami?
- 14. Aby uzyskać całkowitą liczbę kolumn w tabeli w sql
- 15. zapytań SQL, aby ustawić rok jako nazwy kolumny
- 16. Co to jest instrukcja SQL, aby wybrać element, który ma kilka atrybutów na liście elementów/atrybutów?
- 17. Jak uzyskać SqlType kolumny w DataTable?
- 18. Jak uniwersalna jest instrukcja LIMIT w SQL?
- 19. Howto? Parametry i instrukcja LIKE SQL
- 20. Aby obliczyć sumę() dwie kolumny - alias o nazwie SQL
- 21. Operator podobny do sql, aby uzyskać tylko numery
- 22. Jak uzyskać bezpieczną dla XML wersję kolumny XML serwera sql
- 23. Oracle SQL - DATA większa niż instrukcja
- 24. Instrukcja SQL dla dwóch kolumn grupowych
- 25. Instrukcja SQL UPDATE z WHERE EXISTS
- 26. SQL - OŚWIADCZENIE CASE - GDY instrukcja i oświadczenie
- 27. Dlaczego ta instrukcja SQL nie działa?
- 28. Dlaczego ta instrukcja SQL jest bardzo powolna?
- 29. jQuery, jeśli instrukcja, aby sprawdzić widoczność
- 30. Ile znaków może mieć instrukcja SQL Server SQL?
Zależy RDBMS; SQL Server ma na przykład tabelę 'sys.syscolumns'. – LittleBobbyTables
Tak, ale będzie się różnić w zależności od typu używanego systemu RDBMS - SQL to język, a nie produkt bazy danych, a to pytanie zależy od konkretnego produktu. Będziesz mógł znaleźć tego rodzaju informacje w tabeli "INFORMATION_SCHEMA.COLUMNS" - jeśli masz go w RDBMS. – Bridge