存储过程返回记录集

我建立了一个存储过程:  
   create  procedure  test()  
       as  
           begin  
               declare  @a  table  (  
                       id  int,  
                       name  varchar(10)  
             )  
               insert  into  @a(name)  values  ('1')  
               insert  into  @a(name)  values  ('2')      
               select  *  from  @a    
         end      
 
在程序中:  
       set  rs=Dbcon.execute("  exec  test  ")  
       (运行正常)  
       text1=rs.fields(0).value  
       报错:  对象关闭时,操作不被允许。  
 
---------------------------------------------------------------  
 
create  procedure  test()  
       as  
           begin  
                 set  nocount  on  --加上这句看看  
               declare  @a  table  (  
                       id  int,  
                       name  varchar(10)  
             )  
               insert  into  @a(name)  values  ('1')  
               insert  into  @a(name)  values  ('2')      
               select  *  from  @a    
         end      


 Transact-SQL 参考


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

语法
SET NOCOUNT { ON | OFF }

注释
当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。

即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。

当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft® SQL Server™ 提供的实用工具执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会在查询结果中显示"nn rows affected"。

如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。

SET NOCOUNT 设置是在执行或运行时设置,而不是在分析时设置。

权限
SET NOCOUNT 权限默认授予所有用户。

示例
下例在 osql 实用工具或 SQL Server 查询分析器中执行时,可防止显示有关受影响的行数的信息。

USE pubs
GO
-- Display the count message.
SELECT au_lname
FROM authors
GO
USE pubs
GO
-- SET NOCOUNT to ON and no longer display the count message.
SET NOCOUNT ON
GO
SELECT au_lname
FROM authors
GO
-- Reset SET NOCOUNT to OFF.
SET NOCOUNT OFF
GO


请参见

@@ROWCOUNT

SET

©1988-2000 Microsoft Corporation。保留所有权利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值