470 Stimmen

SQL-Anweisung zur Ermittlung des Spaltentyps

Gibt es eine SQL-Anweisung, die den Typ einer Spalte in einer Tabelle zurückgeben kann?

4voto

Alexander Shuev Punkte 105

Da einige Leute auch nach der Genauigkeit des Datentyps gefragt haben, möchte ich mein Skript, das ich für diesen Zweck erstellt habe, mit Ihnen teilen.

SELECT TABLE_NAME As 'TableName'
       COLUMN_NAME As 'ColumnName'
       CONCAT(DATA_TYPE, '(', COALESCE(CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, DATETIME_PRECISION, ''), IIF(NUMERIC_SCALE <> 0, CONCAT(', ', NUMERIC_SCALE), ''), ')', IIF(IS_NULLABLE = 'YES', ', null', ', not null')) As 'ColumnType'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE -- ...
ORDER BY 'TableName', 'ColumnName'

Es ist nicht perfekt, aber es funktioniert in den meisten Fällen.

Verwendung von Sql-Server

4voto

Geza Bartha Punkte 41

TSQL/MSSQL verwenden

Sie können verwenden INTO Stichwort.

Das Ergebnis von SELECT in eine echte TABELLE

E select .... INTO real_table_name

Nach

sp_help real_table_name

4voto

Aman Punkte 143

Para IBM DB2 :

SELECT TYPENAME FROM SYSCAT.COLUMNS WHERE TABSCHEMA='your_schema_name' AND TABNAME='your_table_name' AND COLNAME='your_column_name'

4voto

Kprof Punkte 742
USE [YourDatabaseName]
GO

SELECT column_name 'Column Name',
data_type 'Data Type'
FROM information_schema.columns
WHERE table_name = 'YourTableName'
GO

Dies gibt die Werte Column Name zurück, die Ihnen die Namen der Spalten und die Datentypen dieser Spalten (ints, varchars usw.) anzeigen.

3voto

Amir-ranjbar Punkte 81

Diese Abfrage verwenden

SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'TABLE_NAME'
ORDER BY ORDINAL_POSITION

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X