1. ホーム
  2. sql

[解決済み] sys.dm_exec_sql_textはどのように動作するのですか?

2022-02-25 17:19:05

質問

その理由を教えてください。

select * from sys.dm_exec_sql_text (sql_handle) はエラー(無効なカラム名 'sql_handle')を投げますが

select * from sys.sysprocesses cross apply sys.dm_exec_sql_text (sql_handle) は有効なクエリですか? ありがとうございます。

解決方法は?

sql_handle(または plan_handle)を取得するために、他のテーブルと結合する必要があります。

例えば

select a.session_id, a.start_time, status, a.command, text from sys.dm_exec_requests a cross apply sys.dm_exec_sql_text(sql_handle).

sys.dm_exec_sql_text はテーブル値関数であり、パラメータ sql_handle または plan_handle を渡すと、他の関数と同じように結果を返します。 返される結果は表である(単一の値を返すスカラー関数ではない)。