Share via


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. Por ejemplo, en SQL Server Management Studio, PRINT se genera en la pestaña Mensajes de la ventana de resultados de la consulta.

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

Cadena de caracteres o constante de cadena Unicode. Para obtener más información, vea Constants (Constantes).

@local_variable

Variable de cualquier tipo de datos de caracteres válido. @local_variable debe ser char, nchar, varchar o nvarchar, o bien puede convertirse implícitamente en esos tipos de datos.

string_expr

Expresión que devuelve una cadena. Puede incluir valores literales concatenados, funciones y variables. Para más información, consulte Expresiones.

Comentarios

Una cadena de mensaje puede tener hasta 8000 caracteres si es una cadena no Unicode y 4000 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 usar para devolver mensajes. RAISERROR tiene estas ventajas sobre PRINT:

  • RAISERROR admite la sustitución de argumentos en una cadena de mensaje de error mediante un mecanismo modelado en la función printf de la biblioteca estándar del lenguaje C.

  • RAISERROR puede especificar un número de error único, una gravedad y un código de estado además del mensaje de texto.

  • RAISERROR se puede usar para devolver mensajes definidos por el usuario creados mediante el procedimiento almacenado del sistema de sp_addmessage (Transact-SQL ).

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. Compilación y visualización de una cadena

En el ejemplo siguiente se convierten los resultados de la función GETDATE en un tipo de datos nvarchar y se concatena con texto literal, que devuelve PRINT.

PRINT N'This message was printed on ' + RTRIM(CAST(GETDATE() AS NVARCHAR(30))) + N'.';
GO

En el ejemplo siguiente se muestra cómo compilar el texto del mensaje en una variable.

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. Ejecución condicional de la 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