So rufen Sie den Spaltentyp in SQL ab
Im Bereich der Datenbankverwaltung ist es unerlässlich, Informationen über die Struktur von Tabellen zu haben, einschließlich der Datentypen ihrer Spalten. Dieses Wissen hilft beim Datenverständnis, bei der Manipulation und bei der Abfrageoptimierung. Glücklicherweise bietet SQL einen Mechanismus zum Abrufen des Datentyps einer bestimmten Spalte.
Verwendung der INFORMATION_SCHEMA.COLUMNS-Ansicht
Die INFORMATION_SCHEMA.COLUMNS-Ansicht bietet einen umfassenden Katalog von Tabellenmetadaten, einschließlich Spaltentypen. Diese Ansicht bietet eine Fülle von Informationen, einschließlich des Datentyps der Spalte, der NULL-Zulässigkeit und anderer Attribute. Um den Datentyp einer bestimmten Spalte abzurufen, verwenden Sie die folgende Abfrage:
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '[yourSchemaName]' AND TABLE_NAME = '[yourTableName]' AND COLUMN_NAME = '[yourColumnName]';
Typen mit Parametern rekonstruieren
Die Spalte DATA_TYPE liefert zwar wesentliche Informationen, kann es aber sein enthalten nicht immer die vollständige Spezifikation parametrisierter Typen. Beispielsweise wird eine Spalte mit dem Typ „nvarchar(max)“ nur als „nvarchar“ angezeigt. Um dieses Problem zu lösen, sollten Sie den folgenden Ansatz in Betracht ziehen:
WITH q AS ( SELECT c.TABLE_SCHEMA, c.TABLE_NAME, c.ORDINAL_POSITION, c.COLUMN_NAME, c.DATA_TYPE, CASE WHEN c.DATA_TYPE IN ( N'binary', N'varbinary' ) THEN ( CASE c.CHARACTER_OCTET_LENGTH WHEN -1 THEN N'(max)' ELSE CONCAT( N'(', c.CHARACTER_OCTET_LENGTH , N')' ) END ) WHEN c.DATA_TYPE IN ( N'char', N'varchar', N'nchar', N'nvarchar' ) THEN ( CASE c.CHARACTER_MAXIMUM_LENGTH WHEN -1 THEN N'(max)' ELSE CONCAT( N'(', c.CHARACTER_MAXIMUM_LENGTH, N')' ) END ) WHEN c.DATA_TYPE IN ( N'datetime2', N'datetimeoffset' ) THEN CONCAT( N'(', c.DATETIME_PRECISION, N')' ) WHEN c.DATA_TYPE IN ( N'decimal', N'numeric' ) THEN CONCAT( N'(', c.NUMERIC_PRECISION , N',', c.NUMERIC_SCALE, N')' ) END AS DATA_TYPE_PARAMETER, CASE c.IS_NULLABLE WHEN N'NO' THEN N' NOT NULL' WHEN N'YES' THEN N' NULL' END AS IS_NULLABLE2 FROM INFORMATION_SCHEMA.COLUMNS AS c ) SELECT CONCAT( q.DATA_TYPE, ISNULL( q.DATA_TYPE_PARAMETER, N'' ), q.IS_NULLABLE2 ) AS FULL_DATA_TYPE FROM q WHERE q.TABLE_SCHEMA = '[yourSchemaName]' AND q.TABLE_NAME = '[yourTableName]' AND q.COLUMN_NAME = '[yourColumnName]';
Diese Abfrage rekonstruiert die vollständige Datentypspezifikation, einschließlich Parameter für parametrisierte Typen, und fügt einen beschreibenden Nullfähigkeitsindikator hinzu.
Unter Verwendung dieser Techniken Sie können die Datentypen von Spalten in Ihren SQL-Tabellen erfolgreich abrufen und verstehen.
Das obige ist der detaillierte Inhalt vonWie rufe ich den vollständigen Datentyp einer SQL-Spalte ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!