PRINT (Transact-SQL)

Devuelve al cliente un mensaje definido por el usuario.

Icono de vínculo a temasConvenciones 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).

Notas

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).

Para obtener información sobre cómo las aplicaciones procesan los mensajes devueltos por la instrucción PRINT, vea Controlar errores y mensajes en las aplicaciones.

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