Ψάχνεις για λάθος πράγμα.
Σε όλες τις βάσεις, όταν βάζεις μία τιμή σε ' ' θεωρείται ότι είναι varchar. Αν θέλεις να δώσεις αριθμό απλά δώσε τον χωρίς '', π.χ. 1.0 . Επιπλέον, το ',' ισχύει ως δεκαδικό μόνο στα ελληνικά. Όταν προσπαθείς να περάσεις τιμή varchar σε πεδίο decimal ο SQL Server θα προσπαθήσει να κάνει τη μετατροπή χρησιμοποιώντας το locale της βάσης. Αν αυτό δεν είναι ελληνικό, θα πάρεις σφάλμα. Γι αυτό δεν πρέπει ΠΟΤΕ να περνάς varchar τιμές όταν στην πραγματικότητα θέλεις να περάσεις decimal, date ή κάποιο άλλο τύπο.
Υποψιάζομαι ότι το statement δημιουργήθηκε από concatenation όπου προσπαθείς να περάσεις τιμές που έδωσε ο χρήστης. Το concatenation έχει μεγάλα προβλήματα ασφάλειας, performance και όπως βλέπεις, localization. Αντί γι αυτό χρησιμοποίησε query parameters για να περάσεις τις τιμές με το σωστό τύπο χωρίς ζητήματα μετατροπής.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos