首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用SQL2008结果集中的消息

禁用SQL2008结果集中的消息
EN

Stack Overflow用户
提问于 2009-02-06 13:10:32
回答 5查看 15.5K关注 0票数 4

关于这些 问题,是否有一种方法可以禁用与SQL2008中的结果集一起发送的消息?

(请注意,这与ANSI_WARNINGS设置无关。(或NOCOUNT.)

谢谢你的帮助。

编辑:这不是兼容性设置或表所有者的问题。,这与NOCOUNT无关。请相信我。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-02-21 18:01:24

不,没有一种方法可以禁用与结果集一起发送的所有消息。Set nocount on/off对这些类型的消息没有影响。

票数 15
EN

Stack Overflow用户

发布于 2009-02-17 13:08:03

无论如何,您需要在Sproc的主体中使用NOCOUNT (我很感谢您已经对它进行了测试。)

在这种情况下,我会得到对Sproc的实际调用(或者从我的应用程序中的Debug调用,或者使用Sproc),然后将其插入SSMS或您使用的任何IDE中,将其包装在回滚事务中(因此它不会意外地进行任何更改)。注意:使用与应用程序使用相同的凭据,使用IDE登录到Server。

代码语言:javascript
复制
BEGIN TRANSACTION
EXEC StaffEnquirySurnameSearch @searchterm = 'FOOBAR'
ROLLBACK

看看你能得到什么。输出时使用文本模式,而不是可能隐藏某些内容的网格模式。

为了显示我认为NOCOUNT应该如何添加到您的SProc中:

代码语言:javascript
复制
CREATE PROCEDURE StaffEnquirySurnameSearch
    @searchterm varchar(255)
AS

SET NOCOUNT ON

SELECT  AD.Name, AD.Company, AD.telephoneNumber, AD.manager, CVS.Position,
    CVS.CompanyArea, CVS.Location, CVS.Title, AD.guid AS guid,
    AD.firstname, AD.surname
FROM ADCVS AD
LEFT OUTER JOIN CVS ON
    AD.Guid=CVS.Guid 
WHERE AD.SurName LIKE @searchterm
ORDER BY AD.Surname, AD.Firstname
GO

我注意到,您没有用数据库所有者(最常见的是"dbo")作为表的前缀,这可能意味着有更多的副本由任何人拥有,从应用程序权限的角度来看,它们最终是默认的,尽管我认为这不会改变SQL版本之间的结果集,但是,Sproc的所有权也是一样的,您可能会调用为另一个所有者创建的一些早期版本。

同样,在ASP.NET代码中定义了Sproc名称(我似乎在您的链接问题中找不到),也应该定义所有者,即

代码语言:javascript
复制
EXEC dbo.StaffEnquirySurnameSearch @searchterm = 'FOOBAR'
票数 0
EN

Stack Overflow用户

发布于 2009-02-17 13:14:59

从SQL 2000升级到2008时,是否更改了兼容性级别?如果是某种向后兼容性警告消息可能会治愈它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/520220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档