2013-05-17 66 views
2

我有一个插入和更新的插件。只有特定更新的数量需要返回。我尝试过返回或选择@@ ROWCOUNT,但是由于其他选择在sproc中,它被掩埋并难以访问。对于整个proc,NOCOUNT ON显然会返回其他插入和更新的计数。我想知道我是否可以这样做:SQL Server 2005中的SET NOCOUNT可以包含单个语句吗?

SET NOCOUNT ON 
-- some inserts, selects, updates 
SET NOCOUNT OFF 
-- The update I care about 
SET NOCOUNT ON 

并只接收来自该更新的计数? 在此先感谢。

回答

2

为什么是的,是的,你可以。这正是SET NOCOUNT的用处。

(你有没有尝试这个在MS SQL Server Management Studio中,或测试环境?)

+0

我只是做了和它的作品我想它想的办法,那就是它说:“( 1 row(s)affected)“而不是4.如果我在vb中执行NonQuery,你认为我会看到1而不是4作为返回值吗? –

+0

我不这么认为,看着[ExecuteNonQuery的文档](http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx)我没有看到它的任何理由。查询在SQL服务器中运行,对于不同的访问程序不应该有不同的行为。 – DougM

0

当然可以。它应该没有问题。 Here是MSDN文档。

+0

谢谢。我在看这个,但我不确定它是否会给我想要的结果。 –

0

可以在变量保持结果@@ ROWCOUNT的也没关系,其他选择

-- some inserts, selects, updates 
-- The update I care about 
DECLARE @rowCount_updICareAbout INT 
SET @rowCount_updICareAbout = @@ROWCOUNT 
SELECT @rowCount_updICareAbout 
+0

我确实尝试过,但是我无法让我的代码(vb)读取select中的内容,而无法读取它之前的其他程序。 –

相关问题