问题:
以前同事写的 存储过程A ,功能是 统计信息(里面有select 语句)并插入到 表A里
存储过程A 结果(1):
列1 列2 列3 列4
a   b   c   d我现在要再写一个存储过程X 调用A(好多像A这样的存储过程)在程序中 调用X 好慢,在查询分析器里调用,返回好多像(结果1) 的信息
我想在 X中 ,控制 不让显示任何信息,或者,能优化(前提是不去更改 A)
我在X中,用 set nocount on 也没用
请大家看看

解决方案 »

  1.   

    http://blog.csdn.net/fredrickhu/archive/2009/09/23/4584118.aspx存储过程调用存储过程 并获得返回值
      

  2.   

    例如:
    select kahao from huiyuan
    结果
    kahao
    100
    200
    300
    想要的是 运行 select kahao from huiyuan
    什么都不显示
      

  3.   

    select kahao from huiyuan where 1=0
      

  4.   

    不修改A的话,基本上很难。在外面是干涉不了A的执行的,A里面有select语句,你能让select不执行?
      

  5.   

    修改A,为上策!
    select kahao from huiyuan where 1> 2 
      

  6.   

    CREATE PROC X
    AS 
      IF (SELECT  COUNT(*) FROM (select kahao from huiyuan)AS T)>0
      --.....什么都不做?
      select kahao from huiyuan1 WHERE 1<>0??
      

  7.   

    set nocount on
    select * from huiyuan
    set nocount off
    怎么不管用,还有信息
      

  8.   

    使返回的结果中不包含有关受 Transact-SQL 语句影响的行数的信息
      

  9.   

    是不是被调用的存储过程执行效率本身就不高?你确保是select 的效率低吗?select 出的结果集本身是多少?是万级吗?如果不改变被调用的存储过程A 只能 优化一下A用到的表索引结构,让A的执行效率提上去,如果确实需要优化,可以与我联系,发表结构与测试数据给我。
      

  10.   

    set nocount on
    阻止在结果中返回可显示受 Transact-SQL 语句影响的行数的消息,
    对Transact-SQL所查询的结果集不受影响,查询的结果一样会显示,
    只是速度会稍快一点