像这样?
CREATE PROCEDURE tiaojian 
(@tablename varchar(100),
@count int,
@tiaojian varchar(10)
)
asif(@tiaojian='yes')
begin
exec get_count @tablename,@count
endgoexec tiaojian authors,10,yes
------------------
172-32-1176 White Johnson 408 496-7223 10932 Bigge Rd. Menlo Park CA 94025 1
213-46-8915 Green Marjorie 415 986-7020 309 63rd St. #411 Oakland CA 94618 1
238-95-7766 Carson Cheryl 415 548-7723 589 Darwin Ln. Berkeley CA 94705 1
267-41-2394 O'Leary Michael 408 286-2428 22 Cleveland Av. #14 San Jose CA 95128 1
274-80-9391 Straight Dean 415 834-2919 5420 College Av. Oakland CA 94609 1
341-22-1782 Smith Meander 913 843-0462 10 Mississippi Dr. Lawrence KS 66044 0
409-56-7008 Bennet Abraham 415 658-9932 6223 Bateman St. Berkeley CA 94705 1
427-17-2319 Dull Ann 415 836-7128 3410 Blonde St. Palo Alto CA 94301 1
472-27-2349 Gringlesby Burt 707 938-6445 PO Box 792 Covelo CA 95428 1
486-29-1786 Locksley Charlene 415 585-4620 18 Broadway Av. San Francisco CA 94130 1

解决方案 »

  1.   

    谢谢楼上这为大哥了,我的意思是把@tiaojian成where后的条件,不好意思,我刚才没说清楚,这样把,上面的20分给您,我在加20分作为这次问的分。
      

  2.   

    如果想使用get_count返回的结果集,必须先定义一个表
      

  3.   

    exec('SELECT top '+@count+'*  FROM '+@tablename+' where 列A ='''+@tiaojian+'''')--列A自定义列的条件
      

  4.   

    这样定义:
    exec('SELECT top '+@count+'*  FROM '+@tablename)--列A自定义列的条件if @@rowcount!<@count--如果以上记录影响数等于影响数,说明表还有数据
    exec('SELECT top '+@count+'*  FROM '+@tablename+
    'where id not in( select '+@count+' id from '+@tablename)--排除已统计的数据