【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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值