PRINT (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库
向客户端返回用户定义消息。 例如,在 SQL Server Management Studio 中, PRINT
输出到查询结果窗口的“消息”选项卡。
语法
PRINT msg_str | @local_variable | string_expr
参数
msg_str
字符串或 Unicode 字符串常量。 有关详细信息,请参阅常量。
@local_variable
任何有效字符数据类型的变量。 @local_variable必须是 char、nchar、varchar 或 nvarchar,或者必须能够隐式转换为这些数据类型。
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