Cara Mengambil Jenis Lajur dalam SQL
Dalam bidang pengurusan pangkalan data, adalah penting untuk mempunyai maklumat tentang struktur jadual, termasuk jenis data lajur mereka. Pengetahuan ini membantu dalam pemahaman data, manipulasi dan pengoptimuman pertanyaan. Syukurlah, SQL menyediakan mekanisme untuk mendapatkan semula jenis data lajur tertentu.
Menggunakan INFORMATION_SCHEMA.COLUMNS View
INFORMATION_SCHEMA.COLUMNS view menyediakan katalog komprehensif bagi metadata jadual, termasuk jenis lajur. Paparan ini menawarkan banyak maklumat, termasuk jenis data lajur, kebolehbatalan dan atribut lain. Untuk mendapatkan semula jenis data lajur tertentu, gunakan pertanyaan berikut:
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '[yourSchemaName]' AND TABLE_NAME = '[yourTableName]' AND COLUMN_NAME = '[yourColumnName]';
Membina Semula Jenis dengan Parameter
Walaupun lajur DATA_TYPE menyediakan maklumat penting, ia mungkin tidak selalu termasuk spesifikasi penuh jenis parameter. Sebagai contoh, lajur yang ditaip sebagai nvarchar(max) hanya akan ditunjukkan sebagai nvarchar. Untuk menangani perkara ini, pertimbangkan pendekatan berikut:
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]';
Pertanyaan ini membina semula spesifikasi jenis data penuh, termasuk parameter untuk jenis berparameter dan menambah penunjuk kebolehtelapan deskriptif.
Menggunakan teknik ini, anda boleh berjaya mendapatkan dan memahami jenis data lajur dalam jadual SQL anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengambil Jenis Data Lengkap Lajur SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!