SQL Server 2008のトリガーベースのログ機能に取り組んでいる開発者の1人が、T-SQL内で最後に実行されたSQLコマンドを取得するコマンドがあるかどうかを尋ねてきました。そのような機能のためのシステムストアドプロシージャがあると思いましたが、過去10年間の別の製品を考えている可能性があります...オンライン検索では結果が得られませんでした。
誰かがその種の情報を持っていますか?
SQL Server 2008のトリガーベースのログ機能に取り組んでいる開発者の1人が、T-SQL内で最後に実行されたSQLコマンドを取得するコマンドがあるかどうかを尋ねてきました。そのような機能のためのシステムストアドプロシージャがあると思いましたが、過去10年間の別の製品を考えている可能性があります...オンライン検索では結果が得られませんでした。
誰かがその種の情報を持っていますか?
必ずこれを試してください:
SELECT
DMExQryStats.last_execution_time AS [Executed At],
DMExSQLTxt.text AS [Query]
FROM
sys.dm_exec_query_stats AS DMExQryStats
CROSS APPLY
sys.dm_exec_sql_text(DMExQryStats.sql_handle) AS DMExSQLTxt
ORDER BY
DMExQryStats.last_execution_time DESC
最近実行されたクエリと、それらが実行された日時が返されます
まあ、最新の SQL バッチを取得するプロシージャは、安全にそれ自体を返すことができます:)
重要なことに、列に基づいて、プランが最後にいつ実行されたかを確認sys.dm_exec_query_stats
できます。ただし、実行後にキャッシュから削除されたプランを考慮していないため、この方法は信頼できないことに注意してください。sys.dm_exec_procedure_stats
last_execution_time
マルチコアマシンのコンテキストで「最新」とはどういう意味ですか?
また、彼は最近開始された、または最近終了したことを意味しますか?
最後に、彼はSSMSを開いて、ActivityMonitorを確認する必要があります。