确定为存储过程触发的循环数

时间:2011-11-01 11:46:06

标签: sql-server sql-server-2008 sql-server-2008-r2

我在SQL Server 2008 R2上创建了一个复杂的存储过程,此SP还包含一些用户定义的函数。那些UDF和SP本身在它们内部有一些while循环。

当我打电话给SP时,我想确定循环的次数。

我可以做任何改变吗?

1 个答案:

答案 0 :(得分:0)

据我所知,SQL Profiler没有任何办法可以做到这一点。我要做的是创建一个临时表(假设您只对单个连接的迭代次数感兴趣)增加单个计数变量,然后您可以输出存储在该临时表中的值循环。

类似的东西:

create table #countTable
(
    id int not null,
    countvar int not null
)
go

insert into #countTable
select 1, 0
go

-- your stored proc call here
--   during your iterations at the end, call this:
update #countTable
set countvar = countvar + 1
where id = 1
go

-- ...your stored proc ends now you want the count
select countvar
from #countTable
where id = 1
go

我创建了一个id字段,以防您有多个“计数器”。