PRINT (Transact-SQL)
Devuelve al cliente un mensaje definido por el usuario.
Convenciones de sintaxis de Transact-SQL
Sintaxis
PRINT msg_str | @local_variable | string_expr
Argumentos
msg_str
Es una cadena de caracteres o una constante de cadena Unicode. Para obtener más información, vea Constantes (Transact-SQL).@ local_variable
Es una variable de cualquier tipo de datos de caracteres válido. **@**local_variable debe ser char, nchar, varchar o nvarchar, o bien se debe poder convertir implícitamente a estos tipos de datos.string_expr
Es una expresión que devuelve una cadena. Puede incluir valores literales concatenados, funciones y variables. Para obtener más información, vea Expresiones (Transact-SQL).
Comentarios
Una cadena de mensaje puede tener una longitud de hasta 8.000 caracteres si es una cadena no Unicode, y de 4.000 caracteres si es una cadena Unicode. Las cadenas de mayor longitud se truncarán. Los tipos de datos nvarchar(max) y varchar(max) se truncan en tipos de datos que no sean mayores que varchar(8000) y nvarchar(4000).
RAISERROR también se puede utilizar para devolver mensajes. RAISERROR ofrece una serie de ventajas en comparación con PRINT:
RAISERROR admite argumentos de sustitución en una cadena de mensaje de error con un mecanismo modelado en la función printf de la biblioteca estándar de lenguaje C.
RAISERROR puede especificar un número de error único, un nivel de gravedad y un código de estado para el mensaje de texto.
RAISERROR se puede utilizar para devolver mensajes definidos por el usuario y creados con el procedimiento almacenado del sistema sp_addmessage.
Ejemplos
A.Ejecutar condicionalmente una impresión (IF EXISTS)
En el siguiente ejemplo se utiliza la instrucción PRINT para devolver un mensaje de manera condicional.
IF @@OPTIONS & 512 <> 0
PRINT N'This user has SET NOCOUNT turned ON.';
ELSE
PRINT N'This user has SET NOCOUNT turned OFF.';
GO
B.Generar y mostrar una cadena
En el siguiente ejemplo se convierte el resultado de la función GETDATE a un tipo de datos nvarchar y se concatena con el texto literal que devuelve PRINT.
-- Build the message text by concatenating
-- strings and expressions.
PRINT N'This message was printed on '
+ RTRIM(CAST(GETDATE() AS nvarchar(30)))
+ N'.';
GO
-- This example shows building the message text
-- in a variable and then passing it to PRINT.
-- This was required in SQL Server 7.0 or earlier.
DECLARE @PrintMessage nvarchar(50);
SET @PrintMessage = N'This message was printed on '
+ RTRIM(CAST(GETDATE() AS nvarchar(30)))
+ N'.';
PRINT @PrintMessage;
GO