PRINT (Transact-SQL)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 中的 SQL 终结点 Microsoft Fabric 中的仓库 Microsoft Fabric SQL 数据库

向客户端返回用户定义消息。 例如,在 SQL Server Management Studio 中, PRINT 输出到查询结果窗口的“消息”选项卡。

Transact-SQL 语法约定

语法

PRINT msg_str | @local_variable | string_expr

参数

msg_str

字符串或 Unicode 字符串常量。 有关详细信息,请参阅常量

@local_variable

任何有效字符数据类型的变量。 @local_variable必须是 charnchar、varcharnvarchar,或者必须能够隐式转换为这些数据类型。

string_expr

一个返回字符串的表达式。 可包括串联的文字值、函数和变量。 有关详细信息,请参阅表达式

注解

如果消息字符串是非 Unicode 字符串,则消息字符串长度最多为 8,000 个字符,如果是 Unicode 字符串,则长度为 4,000 个字符。 超过最大长度的字符串会被截断。 varchar(max) 和 nvarchar(max) 数据类型被截断为不大于 varchar(8000) 和 nvarchar(4000) 的数据类型

RAISERROR 还可用于返回消息。 RAISERROR 具有以下优势 PRINT

  • RAISERROR 支持使用基于 C 语言标准库 printf 函数建模的机制将参数替换成错误消息字符串。

  • RAISERROR 除了文本消息之外,还可以指定唯一的错误号、严重性和状态代码。

  • RAISERROR 可用于返回使用 sp_addmessage (Transact-SQL) 系统存储过程创建的用户定义消息。

示例

A. 有条件地执行输出 (IF EXISTS)

以下示例使用 PRINT 语句有条件地返回消息。

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. 生成并显示字符串

下面的示例将 GETDATE 函数的结果转换为 nvarchar 数据类型,并将其与文本文本连接,该文本由该PRINT文本返回。

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

以下示例演示如何在变量中生成消息文本。

DECLARE @PrintMessage NVARCHAR(50);
SET @PrintMessage = N'This message was printed on ' + RTRIM(CAST(GETDATE() AS NVARCHAR(30))) + N'.';
PRINT @PrintMessage;
GO

示例:Azure Synapse Analytics 和 Analytics Platform System (PDW)

°C 有条件地执行打印

以下示例使用 PRINT 语句有条件地返回消息。

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