以下代码统计了在特定 SE 网站上创建了至少一篇帖子的用户数量。
DECLARE @RowCount INT
SET @RowCount = (SELECT COUNT(DISTINCT OwnerUserId)
FROM Posts where OwnerUserId is not null)
PRINT FORMATMESSAGE('%s has \r\n %d users', DB_NAME(), @RowCount+1)
这基本上可以工作,但该FORMATMESSAGE
部分没有按预期工作。
通常,\n
(在许多系统和语言中)和\r\n
(主要在 MS 系统中)代表新线。我都试过了,甚至/r/n
都没有。
如何FORMATMESSAGE
在事务 sql 中输出新行?
问题是解释
\r\n
为回车和换行。SQL Server\r\n
在某些地方确实会这样解释,但 FORMATMESSAGE 函数不是其中之一,因此您需要使用CHAR(13)
它CHAR(10)
来表示回车 (13) 和换行 (10) 的 ASCII 代码:或者使用一个变量: