Instruction SQL pour obtenir le type de colonne
Est-il une instruction SQL qui peut retourner le type d'une colonne dans une table?
- Dépend du SGBD, SQL Server a la
sys.syscolumns
table par exemple. - Oui, mais ça va être différente selon le type de SGBD que vous utilisez SQL est un langage, et non pas le produit de base de données, et cette question s'appuie sur le produit spécifique. Vous serez en mesure de trouver ce genre d'information dans le
INFORMATION_SCHEMA.COLUMNS
table si votre SGBDR a elle.
Vous devez vous connecter pour publier un commentaire.
À l'aide de SQL Server:
AND TABLE_SCHEMA = 'yourSchema'
varchar(255)
au lieu devarchar
etint(11)
au lieu deint
?CHARACTER_MAXIMUM_LENGTH
dansINFORMATION_SCHEMA.COLUMNS
. Il suffit de faire uneSELECT * FROM INFORMATION_SCHEMA.COLUMNS
pour voir toutes les colonnes disponibles.CHARACTER_MAXIMUM_LENGTH
."numeric(10, 2)"
ou"varchar(100)"
IF
déclaration? Par exemple je veux seulement faire un peu de logique, si c'est unInteger
?La manière la plus facile de TSQL est:
Pour SQL Server, cette procédure stockée système retournera toutes les informations de la table, y compris la colonne de types de données:
Alt+F1
.. donne le même résultat.Alt+F1
. Pas dans la solution de l'Explorateur d'Objets. C'est une fonctionnalité très utileEn TSQL/MSSQL il ressemble:
JOIN sys.types y ON y.user_type_id = c.user_type_id
system_type_id n'est pas unique. sys.les colonnes docdans oracle SQL vous voulez faire cela:
Si vous utilisez MySQL, vous pouvez essayer de
AFFICHER les COLONNES sur dev.mysql.com
Sinon, vous devriez être en mesure de faire
DESCRIBE
syntaxe est valide dans Oracle, cependant MsSQL n'acceptera pas cette syntaxe.information_schema.COLUMNS
.Une autre variation à l'aide de MS SQL:
Cela renvoie les valeurs de la Colonne Nom, vous montrant les noms des colonnes, et les Types de Données de ces colonnes (ints, varchars, etc).
Pour IBM DB2 :
À l'aide de TSQL/MSSQL
Cette requête, vous obtiendrez: nom de la table, le nom de colonne, le type de données type de données longueur, et les valeurs null
La seule chose qui doit être changé, c'est your_table_name.
Dans mon cas, j'avais besoin d'obtenir le type de données pour SQL Dynamique (Frisson!) de toute façon, voici une fonction que j'ai créé qui renvoie le plein de type de données. Par exemple, au lieu de retourner 'virgule' il serait de retour DÉCIMAL(18,4): dbo.GetLiteralDataType
À l'aide de TSQL/MSSQL
Vous pouvez utiliser
INTO
mot-clé.Le résultat de
SELECT
en une véritable TABLE deExemple:
select .... INTO real_table_name
Après
Utiliser cette requête pour obtenir Schéma, Tableau, Colonne,Type, max_length, is_nullable
Pour Spark SQL:
Pour Apache Derby comme indiqué dans cette réponse:
Il vous donnera des informations sur toutes les colonnes de la table .
Dans vb60 vous pouvez faire ceci:
"et de l'échantillon (valRs est ma fonction pour rs.champs("CHARACTER_MAXIMUM_LENGTH").valeur):
Pour récupérer la réelle déclarée types de données, par exemple pour une utilisation dans le SQL dynamique pour MODIFIER les Colonnes, quelque chose comme cela peut être utilisé:
Étant donné que certaines personnes ont demandé pour la précision aussi bien avec le type de données, je voudrais partager mon script que j'ai créé pour un but.
Il n'est pas parfait, mais il fonctionne dans la plupart des cas.
À l'aide de
Sql-Server