原帖地址:
问题描述:
随着学习的进步,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) )GOINSERT 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 GOEXEC NSP_TEST @IsReturn = 0