【发布时间】:2015-09-28 08:06:40
【问题描述】:
我有一个批处理语句,我将通过sp_executesql 或Exec 执行:
Declare @query1 varchar(max), @query2 varchar(max)
Set @query1 = '
select top 10 * from sysobjects;
select top 10 * from sysColumns;'
Set @query2 = '
select top 10 * from sysobjects
select top 10 * from sysColumns
select top 10 * from sysColumns
'
Exec(@query1)
Exec(@query2)
有什么方法可以知道单个批次中有多少个选择/插入/更新/删除语句或查询?
对于上面的例子;答案分别是 2 和 3
为了清楚起见:我不决定批处理语句,它直接通过存储过程参数给我。
我只需要知道服务器在这批中执行了多少查询。
【问题讨论】:
-
我们可以假设每个语句都以
;结尾吗? -
我无法确定这一点,因此我将两者都作为 egs..
-
唯一的方法是检查执行计划,例如shown here。如果不解析查询,您无法猜测语句的数量。一旦您有了 XML 格式的执行计划,您就可以使用 OPENXML 检查计划中出现了多少条语句
标签: sql-server sql-server-2008-r2