Condividi tramite


FORMATMESSAGE (Transact-SQL)

Crea un messaggio in base a un messaggio esistente di sys.messages. La funzionalità di FORMATMESSAGE è simile a quella dell'istruzione RAISERROR. Tuttavia, mentre RAISERROR stampa il messaggio immediatamente, FORMATMESSAGE restituisce il messaggio modificato per ulteriori elaborazioni.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

FORMATMESSAGE ( msg_number , [ param_value [ ,...n ] ] )

Argomenti

  • msg_number
    ID del messaggio archiviato in sys.messages. Se msg_number è <= 13000 oppure se il messaggio non esiste in sys.messages, viene restituito NULL.

  • param_value
    Valore del parametro da utilizzare nel messaggio. È possibile specificare più di un valore di parametro. È necessario specificare i valori nell'ordine in cui le variabili di segnaposto sono elencate nel messaggio. Il numero di valori massimo consentito è 20.

Tipi restituiti

nvarchar

Osservazioni

In modo analogo all'istruzione RAISERROR, l'istruzione FORMATMESSAGE modifica il messaggio mediante la sostituzione delle variabili di segnaposto con i valori di parametro specificati. Per ulteriori informazioni sui segnaposti supportati nei messaggi di errore e sul processo di modifica, vedere RAISERROR (Transact-SQL).

Nota

L'istruzione FORMATMESSAGE può essere utilizzata solo con i messaggi creati tramite sp_addmessage.

L'istruzione FORMATMESSAGE esegue la ricerca del messaggio nella lingua corrente dell'utente. Se non esiste una versione localizzata del messaggio, viene utilizzata la versione inglese (Stati Uniti).

Per i messaggi localizzati, i parametri specificati devono corrispondere ai segnaposti del parametro nella versione inglese (Stati Uniti), ovvero il parametro 1 nella versione localizzata deve corrispondere al parametro 1 nella versione inglese (Stati Uniti), il parametro 2 deve corrispondere al parametro 2 e così via.

Esempi

Nell'esempio seguente viene utilizzato il messaggio ipotetico 50001, archiviato in sys.messages come "The number of rows in %s is %1d". FORMATMESSAGE sostituisce i segnaposti dei parametri con i valori Table1 e 5. La stringa risultante "The number of rows in Table1 is 5" viene archiviata nella variabile locale @var1.

DECLARE @var1 VARCHAR(100)
SELECT @var1 = FORMATMESSAGE(50001, 'Table1', 5)