Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

客戶端調(diào)用Sqlserver存儲(chǔ)過(guò)程時(shí)無(wú)記錄集返回

2013-5-9 21:33| 發(fā)布者: mclly2000| 查看: 1988| 評(píng)論: 0|原作者: mclly2000

摘要: 用VB做的客戶端程序在調(diào)用服務(wù)器的存儲(chǔ)過(guò)程時(shí)有的存儲(chǔ)過(guò)程可以返回記錄集,而有的無(wú)法返回記錄集,這是為什么呢?通過(guò)對(duì)存儲(chǔ)過(guò)程的排查,發(fā)現(xiàn)問(wèn)題在于結(jié)果集中返回可顯示受 Transact-SQL 語(yǔ)句或存儲(chǔ)過(guò)程影響的行計(jì)數(shù) ...
用VB做的客戶端程序在調(diào)用服務(wù)器的存儲(chǔ)過(guò)程時(shí)有的存儲(chǔ)過(guò)程可以返回記錄集,而有的無(wú)法返回記錄集,這是為什么呢?
通過(guò)對(duì)存儲(chǔ)過(guò)程的排查,發(fā)現(xiàn)問(wèn)題在于結(jié)果集中返回可顯示受 Transact-SQL 語(yǔ)句或存儲(chǔ)過(guò)程影響的行計(jì)數(shù)的消息。也就是需要加上set nocount on語(yǔ)句。
SET NOCOUNT { ON | OFF }
備注
當(dāng) SET NOCOUNT 為 ON 時(shí),不返回計(jì)數(shù)。當(dāng) SET NOCOUNT 為 OFF 時(shí),返回計(jì)數(shù)。
即使當(dāng) SET NOCOUNT 為 ON 時(shí),也更新 @@ROWCOUNT 函數(shù)。
當(dāng) SET NOCOUNT 為 ON 時(shí),將不向客戶端發(fā)送存儲(chǔ)過(guò)程中每個(gè)語(yǔ)句的 DONE_IN_PROC 消息。如果存儲(chǔ)過(guò)程中包含一些并不返回許多實(shí)際數(shù)據(jù)的語(yǔ)句,網(wǎng)絡(luò)通信流量便會(huì)大量減少,因此,將 SET NOCOUNT 設(shè)置為 ON 可顯著提高性能。
SET NOCOUNT 指定的設(shè)置是在執(zhí)行或運(yùn)行時(shí)生效,而不是在分析時(shí)生效。
示例
以下示例將禁止顯示受影響的行數(shù)的消息。
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

最新評(píng)論

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-13 08:23 , Processed in 0.087766 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回頂部