计算Stored Proc编辑的行数

时间:2013-07-05 14:15:49

标签: sql sql-server-2008 stored-procedures

我们在MSSQL Server 2008数据库中有一个存储过程,该数据库执行大量读写操作以响应用户对网站的操作。 我想知道是否有任何方法可以计算在过程中编辑/创建的行数,最好不必更改过程(尽管可以进行更改)。 有没有人有什么建议?我查看了@@ROWCOUNT但是这包括读取和写入(我不希望在每次更新后都执行proc并手动添加ROWCOUNT)

编辑:使用System.Data.SqlClient类从

4 个答案:

答案 0 :(得分:1)

MS Sql Profiler是你想要开始这样的事情的地方。

答案 1 :(得分:1)

@@ ROWCOUNT将根据最后一次运行语句为您提供计数,因此您可以创建一个本地变量并在每次使用@@ ROWCOUNT后更新它

否则你将不得不进入Profiler并从那里观看,但这不是一个可持续的解决方案,更适合于故障排除。

答案 2 :(得分:1)

如果不编辑proc,最好的办法是启动SQL Server Profiler会话,跟踪SP:StmtCompleted,将ObjectName过滤到proc,并将TextData过滤到要监视的语句。请务必包含RowCount列。

请注意,您无法从extended events sql_statement_completed事件中获取行计数。没有行计数列;只是持续时间,CPU,读写。

如果您可以编辑过程,则可以完全控制行为。您可以总结每个INSERT / UPDATE / DELETE操作的@@ROWCOUNT。此计数可以作为输出参数返回,写入日志,PRINTed,跟踪user-defined trace events,保存到表格等。

答案 3 :(得分:0)

我不知道MySQL,但是Oracle SQL提供了一个名为SQL%ROWCOUNT的变量,它包含前一个事务中影响的行数