Raiserror

03/07/2006 - 18:04 por Carlos Gómez | Informe spam
SQLServer 2005 Express
He creado un par de mensajes de error de la siguiente forma:

EXEC sp_addmessage @msgnumP001,
@severity,
@msgtext='The customer %s is already in the data base'
@lang='us-english'
GO
EXEC sp_addmessage @msgnumP001,
@severity,
@msgtext='El cliente %s ya existe'
@lang='Español'
GO

La vista sys.messages muestra:
message_id language_id severity is_event_logged text
50001 1033 16 0 The cust...
50001 3082 16 0 El clien...

Pero cuando hago:
DECLARE @Nombre varchar(50)
SET @Nombre = 'Pedro'
IF exists (SELECT Id FROM Clientes WHERE Nombre = @Nombre)
RAISERROR (50001,16,1,@Nombre)

en el caso de que se cumpla la condición me da el error:
Mens. 2787, Nivel 16, Estado 2, Linea 4
Especificación de formato no valida: 's%, ya existe'

¿Que hago mal?



Desde Aguadulce - España
Carlos Gomez

Preguntas similare

Leer las respuestas

#6 Carlos Gómez
04/07/2006 - 09:17 | Informe spam
No, como bien apunta Alejandro, es necesario agregar el símbolo bang (
! ):
@msgtext='El cliente %1! ya existe'

Sin él vuelve a dar el mismo error



Antonio Soto ha escrito:

Hola Carlos,

Cuando agreges el mensaje en Español no utilices el parámetro por tipo, sino
por posición es decir:

EXEC sp_addmessage @msgnumP001,
@severity,
@msgtext='El cliente %1 ya existe'
@lang='Español'
GO

Saludos


Antonio Soto
Solid Quality Learning
http://www.sqlu.com
Disclaimer: This communication is an original work and represents my sole
views on the subject. It does not represent the views of any other person
or entity either by inference or direct reference.




Desde Aguadulce - España
Carlos Gomez
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida