客户端调用Sqlserver存储过程时无记录集返回
时 间:2013-05-08 08:53:12
作 者:杏林求真 ID:24722 城市:合肥
摘 要:如题
正 文:
用VB做的客户端程序在调用服务器的存储过程时有的存储过程可以返回记录集,而有的无法返回记录集,这是为什么呢?
通过对存储过程的排查,发现问题在于结果集中返回可显示受 Transact-SQL 语句或存储过程影响的行计数的消息。也就是需要加上set nocount on语句。
SET NOCOUNT { ON | OFF }
备注
当 SET NOCOUNT 为 ON
时,不返回计数。当 SET NOCOUNT 为 OFF 时,返回计数。
即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。
当 SET NOCOUNT 为 ON 时,将不向客户端发送存储过程中每个语句的 DONE_IN_PROC 消息。如果存储过程中包含一些并不返回许多实际数据的语句,网络通信流量便会大量减少,因此,将 SET NOCOUNT 设置为 ON 可显著提高性能。
SET NOCOUNT 指定的设置是在执行或运行时生效,而不是在分析时生效。
示例
以下示例将禁止显示受影响的行数的消息。
USE AdventureWorks;
GO
SET NOCOUNT OFF;
GO
-- Display the count
message.
Select TOP(5)LastName
FROM Person.Contact
Where LastName LIKE
'A%';
GO
-- SET NOCOUNT to ON to no longer display the count
message.
SET NOCOUNT ON;
GO
Select TOP(5) LastName
FROM
Person.Contact
Where LastName LIKE 'A%';
GO
-- Reset SET NOCOUNT to
OFF
SET NOCOUNT OFF;
GO
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)

学习心得
最新文章
- Access快速开发平台--Acc...(06.16)
- 【Access高效办公】按日期区间...(06.12)
- Access快速开发平台--生成复...(06.07)
- 仓库管理实战课程(25)-导航菜单...(06.06)
- 仓库管理实战课程(24)-库存月结...(06.05)
- 分享一个简单的X氏家谱小示例(06.04)
- 仓库管理实战课程(23)-先入先出(06.02)
- 仓库管理实战课程(22)-代理商库...(05.30)
- 仓库管理实战课程(21)-安全库存...(05.28)
- Access快速开发平台--如何添...(05.26)