>Ho un DB in SQL Server in cui c'è un' attributo "Bilancio" di
>tipo text con contenuti dati tipo il seguente: 148.667,31
Ciao Paolo,
come mai un data type pensato per memorizzare stringhe fino a 2 GB è stato utilizzato per memorizzare importi? 
>Ho la necessità di eseguire una Query e convertire tale tipo
>text in tipo money...
Non puoi:
Msg 529, Level 16, State 2, Line 2
Explicit conversion from data type text to money is not allowed.
>Ho provato con CAST ma non funziona... ergo sbaglio...
Non sbagli tu, ha sbagliato chi ha utilizzato il data type Text per memorizzare importi 
Inoltre la stringa "148.667,31" non può essere convertita correttamente a money dato che il separatore decimale è il punto e quello delle migliaia è la virgola indipendentemente dalle regional options o dalla lingua di default associata alla login, pena GRAVISSIMI errori logici.
Verifica:
SELECT CAST('148.667,31' AS money) AS Valore
GO
/* Output:
Valore
---------------------
148,6673
(1 row(s) affected)
*/
>Grazie a tutti.
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org