gpt4 book ai didi

sql-server - 可以获取SQL Server 中当前正在执行的sproc 的行号吗?

转载 作者:行者123 更新时间:2023-12-03 12:40:55 24 4
gpt4 key购买 nike

几年前,我在 Sybase/Delphi 环境中工作,使用 BDE 连接到数据库服务器。我们有一个小的 Delphi 应用程序,给定当前正在执行的存储过程的名称,它可以告诉您当前正在执行该存储过程的哪一行。这对于调试似乎挂起的存储过程特别有用。

我想在 SQL Server 中使用此功能,但我不记得它是 Sybase 还是 BDE 功能。此功能在 SQL Server 中可用吗?如果可用,我需要使用什么命令来查看此信息?

最佳答案

你可以使用类似的东西

SELECT
CASE
WHEN statement_end_offset = -1
THEN text
ELSE SUBSTRING(text,statement_start_offset/2,(statement_end_offset- statement_start_offset)/2)
END,
statement_end_offset, statement_start_offset
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
WHERE session_id = 53 --Or whatever!

statement_start_offsetstatement_end_offset 是映射到当前正在执行的语句的字符偏移量,而不是行号。

一行可以包含多个可执行语句,一个语句可以跨越多行。

关于sql-server - 可以获取SQL Server 中当前正在执行的sproc 的行号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4550342/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com