Problème de convertir les valeurs de colonne de type VARCHAR(n) en DÉCIMAL

J'ai un Serveur SQL server 2000 base de données avec une colonne de type VARCHAR(255). Toutes les données sont soit NULLES, ou de données numériques avec jusqu'à deux points de la précision (par exemple '11.85'). J'ai essayé d'exécuter la suite de requêtes T-SQL, mais n'a reçu l'erreur "Erreur lors de la conversion du type de données varchar numérique'

SELECT CAST([MyColumn] AS DECIMAL)
FROM [MyTable];

J'ai essayé un plus spécifiques exprimés, ce qui a aussi échoué.

SELECT CAST([MyColumn] AS DECIMAL(6,2))
FROM [MyTable];

J'ai aussi essayé la suite pour voir si des données non numériques, et les seules valeurs retournées sont NULLES.

SELECT ISNUMERIC([MyColumn]), [MyColumn]
FROM [MyTable]
WHERE ISNUMERIC([MyColumn]) = 0;

J'ai essayé de les convertir à d'autres types de données, tels que le FLOTTEUR et de l'ARGENT, mais seulement de l'ARGENT a été un succès. J'ai donc essayé le suivant:

SELECT CAST(CAST([MyColumn] AS MONEY) AS DECIMAL)
FROM [MyTable];

...qui a très bien fonctionné. Des idées pourquoi l'original de la requête a échoué? Aura-t-il un problème si j'ai d'abord convertir pour de l'ARGENT et ensuite à VIRGULE?

Merci!

OriginalL'auteur Kevin Babcock | 2010-04-06