发布于 2009-02-21 18:01:24
不,没有一种方法可以禁用与结果集一起发送的所有消息。Set nocount on/off对这些类型的消息没有影响。
发布于 2009-02-17 13:08:03
无论如何,您需要在Sproc的主体中使用NOCOUNT (我很感谢您已经对它进行了测试。)
在这种情况下,我会得到对Sproc的实际调用(或者从我的应用程序中的Debug调用,或者使用Sproc),然后将其插入SSMS或您使用的任何IDE中,将其包装在回滚事务中(因此它不会意外地进行任何更改)。注意:使用与应用程序使用相同的凭据,使用IDE登录到Server。
BEGIN TRANSACTION
EXEC StaffEnquirySurnameSearch @searchterm = 'FOOBAR'
ROLLBACK看看你能得到什么。输出时使用文本模式,而不是可能隐藏某些内容的网格模式。
为了显示我认为NOCOUNT应该如何添加到您的SProc中:
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名称(我似乎在您的链接问题中找不到),也应该定义所有者,即
EXEC dbo.StaffEnquirySurnameSearch @searchterm = 'FOOBAR'发布于 2009-02-17 13:14:59
从SQL 2000升级到2008时,是否更改了兼容性级别?如果是某种向后兼容性警告消息可能会治愈它。
https://stackoverflow.com/questions/520220
复制相似问题