Come immaginavo
Così dovremme andare meglio, spero

codice:
CREATE PROCEDURE codici
/* in input arriva la figura, restituisce tutti i valori associati alla
figura.
*/
@figura varchar(50) , @ordinamento varchar(50)


 AS
  DECLARE @SQL nvarchar(4000)

  SET @SQL = 'SELECT b.codice_prodotto, b.prezzo_riv,  b.descrizione_breve, 
   b.descrizione_estesa FROM articoli b 
   WHERE b.fig = ''' + Replace(@figura,'''','''''') + ''' 
  and b.on_line=''yes'''
  
IF @ordinamento=1 
   SET @SQL = @SQL +  'order by codice_prodotto ASC'
IF @ordinamento=3 
   SET @SQL = @SQL + ' order by prezzo_riv ASC'
IF @ordinamento=2 
   SET @SQL = @SQL + ' order by codice_prodotto DESC'
IF @ordinamento=4 
   SET @SQL = @SQL + ' order by prezzo_riv DESC'


--Esecuzione della query 
EXEC sp_executesql @SQL

GO