sql - 获取当前正在执行的 SQL Cursor 语句

标签 sql sql-server-2005 loops syntax cursor

http://msdn.microsoft.com/en-us/library/ms190346.aspx

它在语句开始/结束偏移下的部分中说,您可以将其与 dm_exec_sql_text 结合使用来获取当前正在执行的游标语句。什么是命令?

我有一个相当大的 SP,当它到达游标逻辑循环 'while (@@fetch_status =0) 时卡住,我想看看它是否是我认为的确切执行语句,我也想查看此语句的参数,以便我可以确切了解为什么游标从未退出,或者只是为什么循环内的语句无法完成。谢谢!

最佳答案

从这个开始

SELECT * FROM(SELECT session_id,
     COALESCE(OBJECT_NAME(s2.objectid),'Ad-Hoc') AS ProcName,
    (SELECT TOP 1 SUBSTRING(s2.TEXT,statement_start_offset / 2+1 ,
      ( (CASE WHEN statement_end_offset = -1
         THEN (LEN(CONVERT(NVARCHAR(MAX),s2.TEXT)) * 2)
         ELSE statement_end_offset END)  - statement_start_offset) / 2+1))  
       AS sql_statement
FROM sys.dm_exec_requests AS s1
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2 ) x
WHERE  sql_statement 
NOT like 'SELECT * FROM(SELECT session_id,COALESCE(%'

关于sql - 获取当前正在执行的 SQL Cursor 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960958/

相关文章:

c# - 从 ASP.NET 中的 SQL Server 下载一个 50 MB 的文件在中间停止了一段时间

sql-server-2005 - 在 sql server 2005 中加入三个表

sql-server-2005 - 为什么在SQL查询中出现NULL聚合警告会导致SSIS包失败?

python - 在 for 循环的每次迭代中保存变量并稍后加载它们

javascript - 如何在中间件函数中迭代 Mongoose 模型属性?

mysql - 我如何创建这个 mysql 选择查询?

sql左连接加CASE查询

c# - 我可以使用 varbinary 类型在 SQL Server 数据库中存储图像吗?

带有日期计数器的sql while循环

c++ - 指向结构的指针不起作用