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
 

Leer las respuestas

#1 Alejandro Mesa
03/07/2006 - 19:49 | Informe spam
Carlos,

Especificación de formato no valida: 's%, ya existe'



Fijate bien en el mensaje, al parecer usastes 's%' en vez de '%s'.


AMB


"Carlos Gómez" wrote:

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 similares