如何将Sql文本转换为SQL Server中的sql_handle

问题描述:

我知道如何从sqlhandle中获取SQL语句,请使用CROSS APPLY sys.dm_exec_sql_text(sql_handle);但我如何从SQL语句中获取sqlhandle?如何将Sql文本转换为SQL Server中的sql_handle

任何人都可以帮助我吗?

如果您研究DMV如何在内部工作,可能会有更好的方法。如果我需要一个快速和肮脏的答案,我会这样做:

With cteQueries As 
(
SELECT * 
FROM sys.dm_exec_query_stats AS qs 
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st 
) 
Select * From cteQueries Where text 
     = 'INSERT msdb.dbo.syssessions(agent_start_date) VALUES(GetDate()) SELECT session_id = SCOPE_IDENTITY()'