Saltar al contenido

Printf de SQL Server

Solución:

PRINT es solo RAISERROR con una gravedad de 0. Entonces puedes usar.

declare @name varchar(10)
set @name="George"

RAISERROR ('Hello %s.', 0, 1, 'George') WITH NOWAIT

Edite para almacenarlo en una variable, puede usar el xp_sprintf procedimiento almacenado extendido.

declare @name varchar(10)
set @name="George"

DECLARE @ret varchar(500)
exec master..xp_sprintf @ret OUTPUT, 'Hello %s.', @name
PRINT @ret

Si tiene un número limitado de cadenas de formato y puede agregarlas a sysmessages (a través de sp_addmessage), puede usar FORMATMESSAGE:

Al igual que la instrucción RAISERROR, FORMATMESSAGE edita el mensaje sustituyendo los valores de parámetro proporcionados por las variables de marcador de posición en el mensaje. Para obtener más información sobre los marcadores de posición permitidos en los mensajes de error y el proceso de edición, consulte RAISERROR.


La siguiente sería una respuesta válida para SQL Server 2005 o posterior, pero desafortunadamente, el OP está buscando una solución para SQL Server 2000:


Es feo y un abuso de Try / Catch y RAISERROR:

declare @message varchar(50)

begin try
    RAISERROR('Hello %s',16,1,'george')
end try
begin catch
    set @message = ERROR_MESSAGE()
end catch

print @message
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *