以编程方式读取 SQL 服务器的触发器查询计划

Programatically read SQL Server's trigger query plan

我需要从 C# 读取与 SQL 命令相关的所有查询计划。但是,触发器的查询计划不会在 reader 中返回。我正在使用这样的简单代码:

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandText = "SET SHOWPLAN_XML ON";
            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();

            // next method
            SqlCommand cmd = new SqlCommand(commandText, conn);
            cmd.CommandType = CommandType.Text;
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                AnalyzeQueryPlan(reader[0].ToString());
            }
            reader.Close();

但我缺少触发器的查询计划。如果我在 SSMS 中处理相同的查询,我可以看到所有这些查询。有没有办法在 C# 中读取触发器的查询计划?

我无法对此进行测试,但假设您只需要使用 reader.NextResult() 前进到下一个结果,然后对其进行处理。