PRINT (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve al cliente un mensaje definido por el usuario.

Convenciones de sintaxis de Transact-SQL

Sintaxis

PRINT msg_str | @local_variable | string_expr  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

msg_str
Es una cadena de caracteres o una constante de cadena Unicode. Para 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 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 varchar(max) y nvarchar(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  

Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)

C. Ejecutar condicionalmente una impresión

En el siguiente ejemplo se utiliza la instrucción PRINT para devolver un mensaje de manera condicional.

IF DB_ID() = 1  
    PRINT N'The current database is master.';  
ELSE  
    PRINT N'The current database is not master.';  
GO  

Consulte también

Tipos de datos (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
RAISERROR (Transact-SQL)