打印SQL Server存储过程的问题



我有一个问题,如果存储过程从链接服务器调用,我将获得反向序列消息。如果有人知道根本原因或提供解决方案,我将不胜感激。提前谢谢。

这是我的测试代码:

CREATE PROCEDURE [dbo].[TestSP]
AS
BEGIN
SET NOCOUNT ON;
PRINT '1'
PRINT '2'
PRINT '3'
END

这样称呼它:

EXEC [dbo].[TestSP] (call by local)

输出:

1
2
3

如果由另一个链接服务器执行,它将以相反的顺序显示输出。

例如,

EXEC [XXX.XXX.XXX.XXX].[dbo].[TestSP]

输出:

3
2
1

打印是一个调试命令,而不是一个函数命令。如果您想要有一个一致的序列顺序,您必须使用级别10的RAISEROR和关键字NOWAIT。

CREATE PROCEDURE [dbo].[TestSP]
AS
BEGIN
SET NOCOUNT ON;
RAISERROR('1', 10, 1) WITH NOWAIT;
RAISERROR('2', 10, 1) WITH NOWAIT;
RAISERROR('3', 10, 1) WITH NOWAIT;
END

相关内容

  • 没有找到相关文章

最新更新