仅使用一个语句返回两个Result-Sets

时间:2017-06-22 06:14:34

标签: sql sql-server tsql stored-procedures

SP在执行时以某种方式返回第二个结果集,我不知道为什么。 有人有想法吗?

这是代码

    SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE SP_CURRENT_USER 

AS
BEGIN
    SET NOCOUNT ON;

    SELECT * FROM Verify where UserName = (CAST(CURRENT_USER AS nvarchar(max)));

END
GO

1 个答案:

答案 0 :(得分:2)

使用"Execute Stored Procedure"调用该过程时,您会看到生成的脚本与此类似:

USE [DBName]
GO
    DECLARE @return_value int
    EXEC    @return_value = [dbo].[SP_CURRENT_USER]
    SELECT  'Return Value' = @return_value
GO

您将看到的是来自您的选择查询的result set和来自存储过程本身的"Return Value"。在你的情况下,它应该是0,这意味着执行成功终止。

请参阅此文章“Is the sp_ prefix still a no-no?”,了解命名程序"sp_"时可能遇到的一些问题。