方法1: 加入一个输入参数,代表一个类型,如@selType
在过程中用if 或case 语句 根据@selType不同返回不同recordset 方法2:也可以将你要的字段合成一个字符串作为输入参数@selStr,如
‘ c1, c2, c3, c4 , f1’在过程中用 set @selStr=’select ’+@selStr+’ from yourtable’
然后Exec(@selStr) 即可
在过程中用if 或case 语句 根据@selType不同返回不同recordset 方法2:也可以将你要的字段合成一个字符串作为输入参数@selStr,如
‘ c1, c2, c3, c4 , f1’在过程中用 set @selStr=’select ’+@selStr+’ from yourtable’
然后Exec(@selStr) 即可
所以基本上寫不出這個參數(不知道要哪些參數才是最合適的)方法2:好象用處不大,因為我想在存儲過程中就不要出現那些不用的字段,這樣才會使數據量小,否則僅僅是最后一句返回值,那只實際了目標的一半要求
例如:
create proc p_test
outfield varchar(100)
as
declare @cmd varchar(100)
set @cmd = 'select f1,f2' + @outfield +' from t'
exec(@cmd)
gop_test ',f3,f4'
p_test ',f5,f6'
返回的就是不同的结果。
你要加一种的时候,就在过程中加入:
if @selType=10
select c1, c2, c3, c4 , f1,d2 from ………即可。当需求增加时候,你就在加:
if @selType=11
select c1, c2,c4 , f3,e2 from ………
方法2同楼上一样的
你需要返回哪些字段,就定义它们成@selStr即可。