Sqlserver2008 跟Sqlserver 在执行存储过程有区别?

Sqlserver2008 和Sqlserver 在执行存储过程有区别????
  之前在Sqlserver2005下写了一个程序,采用ado 执行查询的方式,执行记录集,由于存在多个不同的存储过程,
如果 采用执行存储过程的方法,就需要构建非常多的执行存储过程方法。
   后来采用通过的方法,执行不同的存储过程,比如存储构成名字为 SaveData  1.0 
  则改为下面方法,将存储过程的返回值 通过记录集返回来

    CString sql="SET  NOCOUNT ON declare @q int   SaveData,1.0,@ret=@q output select @q as result";

 int iRes=0
 CAdoRecordSet Rs; 
 Rs.SetAdoConnection(....)//设置连接
  if(!Rs.Open(sql,adCmdText))
{
    Rs.GetCollect("result",iRet);
}

通过调试发现,在Sqlserver2005下运行能够返回值,但是在SQL2008下就 返回的记录集为空,是什么原因????
------解决思路----------------------
SQL2008打最新的补丁。
------解决思路----------------------
引用:
Quote: 引用:

SQL2008打最新的补丁。

是因为补丁的原因吗???
如何查看是否已经打过补丁??

帮助、关于 对话框里面看。
我只是猜想,有待你验证。