PRINT (Transact-SQL)
适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库
向客户端返回用户定义消息。
语法
PRINT msg_str | @local_variable | string_expr
注意
若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档。
参数
msg_str
字符串或 Unicode 字符串常量。 有关详细信息,请参阅常量 (Transact-SQL)。
@local_variable
任何有效的字符数据类型的变量。 @local_variable 的数据类型必须为 char、nchar、varchar 或 nvarchar,或者必须能够隐式转换为这些数据类型。
string_expr
返回字符串的表达式。 可包括串联的文字值、函数和变量。 有关详细信息,请参阅表达式 (Transact-SQL)。
注解
如果消息字符串为非 Unicode 字符串,则最长不得超过 8,000 个字符;如果消息字符串为 Unicode 字符串,则最长不得超过 4,000 个字符。 超过最大长度的字符串会被截断。 varchar(max) 和 nvarchar(max) 数据类型被截断为不大于 varchar(8000) 和 nvarchar(4000) 的数据类型。
RAISERROR 也可以用于返回消息。 RAISERROR 与 PRINT 相比具有以下优点:
RAISERROR 支持使用 C 语言标准库 printf 函数上的建模机制将参数代入错误消息字符串。
除了文本消息,RAISERROR 还可以指定唯一错误编号、严重性和状态代码。
RAISERROR 可用于返回使用 sp_addmessage 系统存储过程创建的用户定义的消息。
示例
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
要返回的文本串联。
-- 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
示例: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
另请参阅
数据类型 (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
RAISERROR (Transact-SQL)
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈