2013-10-22 166 views
0

的存储过程返回值,如:检查存储过程返回值

Text  Value 
sdsd   555 
dsaa   544 
swewe  745 

,如果失败,它返回这样的:

Standard 
No Records Fouond 

我怎么能区分这2个结果SQL查询中水平?

注:我不能修改存储过程

+0

您需要提供更多信息。你打电话过得怎么样?用什么语言? – podiluska

+0

它的样子:'EXEC usp_GetInfo'1122'' - 这是两种类型的结果的重演... SQL中的语言..在sql server 2008中。 – James

+0

你是否在另一个sproc中调用sproc?请举例说明你在做什么。 – AJP

回答

0

使用PROC的输出,以找出。

IF EXISTS(
       SELECT name 
       FROM sysobjects 
       WHERE name = N'Pr_Test' 
       AND type = 'P') 
    DROP PROCEDURE Pr_Test 
    GO 
    Create Procedure Pr_Test 
    (
     @output BIT=0 
    ) 
    As 
    BEGIN 
    SET NOCOUNT ON 

     IF @output = 0 
      SELECT 'No Records Fouond' AS [STANDARD] 
     ELSE 
      SELECT 'abc' AS [text], 1 AS [VALUE] 

    SET NOCOUNT OFF 
    END 
    Go 

    SET NOCOUNT ON 
     DECLARE @ProcOutput TABLE 
     (
      column1  sysname NOT NULL 
     ) 


     INSERT INTO @ProcOutput(Column1) 
     EXEC Pr_Test 

     IF EXISTS (SELECT TOP 1 1 FROM @ProcOutput WHERE column1='No Records Fouond') 
      PRINT ' this is failed select from proc' 
     ELSE 
      PRINT 'proc has some results' 
    SET NOCOUNT OFF