T-SQL中的print语句

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (38)

为什么T-SQL中的print语句似乎只在某些时候起作用?使用它的限制是什么?有时候,如果生成一个结果集,它就变成了一个空函数,我认为这是为了防止结果集损坏,但是它的输出是否可以不在另一个结果集中输出,比如行计数?

提问于
用户回答回答于

可以

select * from sysobjects
PRINT 'Just selected * from sysobjects'

如果使用SQLQueryAnalyzer,您将看到底部有两个选项卡,其中一个是“Messages”,而‘print’语句就是在这里显示的。

您可能需要尝试使用以下内容

raiserror ('My Print Statement', 10,1) with nowait

这将在语句到达时立即给出消息,而不是像QueryAnalyzer在大多数情况下所做的那样缓冲输出。

用户回答回答于

TSQL中的print语句是一个误解的生物,可能是因为它的名称。它实际上向错误/消息处理机制发送了一条消息,然后将其传输到调用的应用程序。您只能发送8000个字符(4000个Unicode字符)。可以发送文字字符串、字符串变量(varchar或char)或字符串表达式。如果使用RAISERROR,则限制为仅为2044个字符的字符串。但是,使用它向调用应用程序发送信息要容易得多,因为它调用的格式函数类似于标准C库中的旧printf。RAISERROR还可以在文本消息之外指定错误号、严重性和状态代码,还可以用来返回使用sp创建的用户定义的消息。

扫码关注云+社区