Database 如何从存储过程中获取数据

Database 如何从存储过程中获取数据,database,sql-server-2008,tsql,stored-procedures,Database,Sql Server 2008,Tsql,Stored Procedures,我正在尝试调试\执行t-sql(sql server 2008)中的SP,当我执行以下sql时,它只返回一条消息“Command(s)completed successfully” 我知道SP正在通过@RETURN\u VALUE参数返回表中的数据,如何在sql查询窗口中显示这些数据 exec STARMS.dbo.GetMetaData @@Assembly=13366,@@Namespace=NULL,@@ParameterName=NULL,@@Standard=0,@@Timestamp

我正在尝试调试\执行t-sql(sql server 2008)中的SP,当我执行以下sql时,它只返回一条消息“Command(s)completed successfully”

我知道SP正在通过@RETURN\u VALUE参数返回表中的数据,如何在sql查询窗口中显示这些数据

exec STARMS.dbo.GetMetaData @@Assembly=13366,@@Namespace=NULL,@@ParameterName=NULL,@@Standard=0,@@Timestamp=NULL
SP看起来像这样(删除了主体)。有趣的部分是创建临时表,然后返回临时表的内容:

CREATE PROCEDURE [dbo].[GetMetaData]
    @@Assembly Sql_Variant = NULL,
    @@Namespace Varchar(30) = NULL,
    @@ParameterName Varchar(40) = NULL,
    @@Standard Bit = 0,
    @@Timestamp DateTime = NULL
AS

    SET NOCOUNT ON

    DECLARE @ResultTable TABLE (AssemblyId Int, Namespace Varchar(30), ParameterName Varchar(40), Value Varchar(100))

    -- Does loads of stuff and then inserts into @ResultTable table...

    SET NOCOUNT OFF

    -- Return the result
    SELECT AssemblyId, Namespace, ParameterName, [Value]
        FROM @ResultTable

    RETURN

注意:我问这个问题的原因是因为我试图查看SQL Server 2008中SP的性能,我不确定为什么这不会在查询窗口中返回数据。

检查SP的完整代码,可能在某个地方有返回语句,因此-SP不会返回任何数据(注意
如果某个条件为真,则返回
):

exec STARMS.dbo.GetMetaData @@Assembly=13366,@@Namespace=NULL,@@ParameterName=NULL,@@Standard=0,@@Timestamp=NULL

谢谢,但我对SP的返回代码不感兴趣,我对数据感兴趣…为什么要用两个
@
符号命名参数?这通常表示内置函数(例如
@@IDENTITY
)。您的变量和参数应该用一个
@
符号IMHO来定义。另外,为什么还要麻烦
设置NOCOUNT OFF
?您的应用程序是否依赖于已完成的进程内消息(例如受影响的
n行
)?这不是我的代码,我只是从正在使用它的应用程序中查看并试图跟踪问题。。。