Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

sp_addmessage (Transact-SQL)

Stocke un nouveau message d'erreur défini par l'utilisateur dans une instance du moteur de base de données SQL Server. Les messages stockés à l'aide de sp_addmessage peuvent être affichés grâce à l'affichage catalogue sys.messages.

S'applique à : SQL Server (SQL Server 2008 jusqu'à la version actuelle).

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

sp_addmessage [ @msgnum= ] msg_id , [ @severity= ] severity , [ @msgtext= ] 'msg' 
     [ , [ @lang= ] 'language' ] 
     [ , [ @with_log= ] { 'TRUE' | 'FALSE' } ] 
     [ , [ @replace= ] 'replace' ] 

[ @msgnum= ] msg_id

ID du message. msg_id est de type int, avec NULL comme valeur par défaut. Pour les messages d'erreur définis par l'utilisateur, msg_id est un entier qui peut être compris entre 50 001 et 2 147 483 647. La combinaison de msg_id et de language doit être unique ; une erreur est renvoyée si l'ID existe déjà pour la langue spécifiée.

[ @severity = ]severity

Niveau de gravité de l'erreur. severity est de type smallint, avec NULL comme valeur par défaut. Les niveaux valides vont de 1 à 25. Pour plus d'informations sur les niveaux de gravité, consultez Niveaux de gravité des erreurs du moteur de base de données.

[ @msgtext = ] 'msg'

Texte du message d'erreur. msg est de type nvarchar(255), avec NULL comme valeur par défaut.

[ @lang = ] 'language'

Langue du message. language est de type sysname, avec NULL comme valeur par défaut. Étant donné que plusieurs langues peuvent être installées sur le même serveur, l'argument language spécifie la langue dans laquelle sera rédigé chaque message. Lorsque l'argument language est omis, la langue est par défaut celle de la session.

[ @with_log = ] { 'TRUE' | 'FALSE' }

Argument utilisé lorsque le message doit être consigné dans le journal des applications Windows. @with_log est de type varchar(5) , avec FALSE comme valeur par défaut. Si sa valeur est TRUE, l'erreur est automatiquement écrite dans le journal des applications Windows. Si sa valeur est FALSE, l'erreur n'est pas automatiquement écrite dans le journal des applications Windows ; c'est la façon dont elle a été déclenchée qui détermine si l'erreur sera ou non écrite dans le journal. Seuls les membres du rôle serveur fixe sysadmin peuvent spécifier cet argument.

Remarque Remarque

Lorsqu'un message est écrit dans le journal des applications Windows, il l'est également dans le fichier du journal des erreurs du moteur de base de données.

[ @replace = ] 'replace'

Si l'argument est spécifié comme chaîne replace, le message d'erreur existant est remplacé par un nouveau message et par le niveau de gravité approprié. replace est de type varchar(7), avec NULL comme valeur par défaut. Cette option doit être spécifiée si l'argument msg_id existe déjà. Si vous remplacez un message en anglais, le niveau de gravité est remplacé pour tous les messages rédigés dans une autre langue qui ont le même argument msg_id.

0 (succès) ou 1 (échec)

Pour les versions non anglaises de SQL Server, la version anglaise d'un message doit exister préalablement à l'ajout d'un message dans une autre langue. Le degré de gravité des deux versions du message doit correspondre.

Lors de la localisation des messages qui contiennent des paramètres, utilisez les numéros de paramètres correspondant aux paramètres des messages d'origine. Insérez un point d'exclamation (!) après chaque numéro de paramètre.

Message d'origine

Message localisé

''Message d'origine param 1 : %s,

param 2 : %d'

''Message localisé param 1 : %1!,

param 2 : %2!'

La syntaxe pouvant différer d'une langue à l'autre, il se peut que les numéros de paramètres apparaissent dans un ordre différent par rapport au message d'origine.

Nécessite l'appartenance aux rôles serveur fixes sysadmin et serveradmin.

A.Définition d'un message personnalisé

L'exemple suivant ajoute un message personnalisé à sys.messages.

USE master;
GO
EXEC sp_addmessage 50001, 16, 
   N'Percentage expects a value between 20 and 100. 
   Please reexecute with a more appropriate value.';
GO

B.Ajout d'un message en deux langues

L'exemple suivant ajoute d'abord un message en anglais, puis ajoute ce même message en français.

USE master;
GO
EXEC sp_addmessage @msgnum = 60000, @severity = 16, 
   @msgtext = N'The item named %s already exists in %s.', 
   @lang = 'us_english';

EXEC sp_addmessage @msgnum = 60000, @severity = 16, 
   @msgtext = N'L''élément nommé %1! existe déjà dans %2!', 
   @lang = 'French';
GO

C.Modification de l'ordre des paramètres

L'exemple suivant ajoute d'abord un message en anglais, puis un message localisé dans lequel l'ordre des paramètres est modifié.

USE master;
GO

EXEC sp_addmessage 
    @msgnum = 60000, 
    @severity = 16,
    @msgtext = 
        N'This is a test message with one numeric
        parameter (%d), one string parameter (%s), 
        and another string parameter (%s).',
    @lang = 'us_english';

EXEC sp_addmessage 
    @msgnum = 60000, 
    @severity = 16,
    @msgtext = 
        -- In the localized version of the message,
        -- the parameter order has changed. The 
        -- string parameters are first and second
        -- place in the message, and the numeric 
        -- parameter is third place.
        N'Dies ist eine Testmeldung mit einem 
        Zeichenfolgenparameter (%3!),
        einem weiteren Zeichenfolgenparameter (%2!), 
        und einem numerischen Parameter (%1!).',
    @lang = 'German';
GO  

-- Changing the session language to use the U.S. English
-- version of the error message.
SET LANGUAGE us_english;
GO

RAISERROR(60000,1,1,15,'param1','param2') -- error, severity, state,
GO                                       -- parameters.

-- Changing the session language to use the German
-- version of the error message.
SET LANGUAGE German;
GO

RAISERROR(60000,1,1,15,'param1','param2'); -- error, severity, state, 
GO                                       -- parameters.

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft