2010-07-17 6 views
1

Je vous écris un paquet de SGBD de base et je suis en train de récupérer la longueur de la colonne. Ceci est la requête que je utilise pour récupérer le infomation:SQL Server: la récupération longueur du type de données

SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH 
FROM INFORMATION_SCHEMA.Columns 
WHERE TABLE_NAME = 'testVariables' 

Cela fonctionne très bien, aucun problème, sauf pour CHARACTER_MAXIMUM_LENGTH renvoie -1 tout le temps, Quand j'utilise SQL Management Studio, il dit que la longueur de la colonne est 16 .. .

Toutes les idées?

Cheers, Joel

+0

vous connectez-vous avec le même utilisateur? –

+0

Je ne vois aucun problème - pour les colonnes VARCHAR, il renvoie la bonne longueur. Que cherchez-vous? INT, DATETIME etc champs n'ont pas une longueur maximale - leur longueur est un donné, défini par leur type –

Répondre

1

Jetez un oeil à regarder des livres en ligne et vous découvrirez que la valeur -1 pour CHARACTER_MAXIMUM_LENGTH signifie que le type de données est soit XML d'un type de grande valeur.

See COLUMNS

+0

Bonjour, Merci pour la réponse. J'ai lu cela en recherchant pourquoi ça allait mal - mais il devrait retourner la valeur 16 car la colonne est nVarchar (16) - ou suis-je épais? Cheers, Joel – JHarley1

+0

Je viens de créer une table de test avec une colonne nvarchar (16) et il affiche correctement. Êtes-vous sûr d'être dans le bon contexte de base de données? Ou ne pas avoir 2 tables de ce nom dans différents schémas? –

+0

ou le type de données est un INT, DATETIME etc. - juste quelque chose qui est ni (N) VARCHAR, ni (N) CHAR –

Questions connexes