Grazie per aver fornito alcuni esempi più espliciti. Per quanto posso dire dalla documentazione e da Google, questo non è possibile in MSSQL 2005 senza un UDF o altro codice procedurale. In MSSQL 2008 lo stile della funzione CONVERT() parametro ora supporta i dati binari, quindi puoi farlo direttamente in questo modo:
select convert(int, convert(varbinary, '0x89', 1))
Nelle versioni precedenti, le tue scelte sono:
- Usa un UDF (TSQL o CLR; CLR potrebbe essere più semplice per questo)
- Avvolgi SELECT in una procedura memorizzata (ma probabilmente avrai comunque l'equivalente di un UDF)
- Convertirlo nel front-end dell'applicazione
- Aggiorna a MSSQL 2008
Se la conversione dei dati è solo a scopo di visualizzazione, l'applicazione potrebbe essere la soluzione più semplice:la formattazione dei dati di solito appartiene comunque a questa. Se devi farlo in una query, un UDF è più semplice ma le prestazioni potrebbero non essere eccezionali (so che hai detto che hai preferito non usare un UDF ma non è chiaro il perché). Immagino che l'aggiornamento a MSSQL 2008 solo per questo probabilmente non sia realistico.
Infine, per tua informazione, il numero di versione che hai incluso è la versione di Management Studio, non il numero di versione del tuo server. Per ottenerlo, interroga il server stesso con select @@version
o select serverproperty('ProductVersion')
.