【51CTO/BBS】SQL 语句中有没有清除控制台显示(返回)数据的命令啊??

原帖地址:http://bbs.51cto.com/viewthread.php?tid=1133377&extra=&page=1

 

问题描述:

 

随着学习的进步,SQL语句变得越来越复杂。

一个SQL存储过程中,很可能调用多个存储过程。导致返回的数据凌乱不堪。  
请教如何清除掉,这些不需要的返回显示的数据。

特别是用 其它编程语言调用SQL时,会导致无法获取到正确的返回数据集。.....

例如:  
      【存储过程A】有多个SELECT语句,    
       SELECT @A;    
       EXEC @A=dbo.[存储过程B]  @B OUTPUT;          --此[存储过程B]中也包含了SELECT 语句    
       SELECT @B,@A;           

我要只返回显示"SELECT @B,@A;  "的结果,应该怎么写?

 

解决方案:

 

如何去掉OUTPUT输出?

用INSERT EXEC去拼接

 

CREATE TABLE #Temp   
(    
   outputData varchar(MAX)    
)
GO
INSERT INTO #Temp   
(    
  outputData    
)    
EXEC master.sys.xp_cmdshell ‘?‘

 

注意:INSERT EXEC语句不能嵌套,请小心使用。

 

如何控制SELECT结果集的输出?

加个参数判断是否回传结果

 

CREATE PROCEDURE NSP_TEST   
  @IsReturn        BIT        = 1  -- 是否回传結果    
AS    
BEGIN    
     IF @IsReturn = 1    
     BEGIN    
        SELECT *    
        FROM TableName    
     END    
END    
GO
EXEC NSP_TEST @IsReturn = 0



本文出自 “SQL Server Deep Dives” 博客,请务必保留此出处http://ultrasql.blog.51cto.com/9591438/1586056

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。