尝试从 SQL Server Profiler 获取过程名称,但显示 'sp_reset_connection'
Trying to get procedure name from SQL Server Profiler, 'sp_reset_connection' shows instead
我有 C# 应用程序,它可以执行数据库存储过程。我可以成功地从这些过程中获得结果,但是 SQL Server Profiler 显示 'sp_reset_connection' 而不是过程名称。我在 SQL Server Profiler 中将事件过滤器设置为 'Stored Procedures'。在我有 'ObjectName' 和 'TextData' 的列中,当我从我的应用程序执行存储过程时,它们都显示 'sp_reset_connection'。
C# 代码(变体代码等同于 "exec dbo.sp_name_1"):
public string ExecSpReturnTime(string connectionString, string code)
{
long execTime = 0;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.StatisticsEnabled = true;
connection.Open();
using (SqlCommand command = new SqlCommand(code, connection))
{
command.ExecuteNonQuery();
}
var stats = connection.RetrieveStatistics();
execTime = (long)stats["ExecutionTime"];
}
return execTime.ToString();
}
我在 SQL Profiler 'Stored Procedures -> SP:Complited' 中添加了过滤器,现在我可以看到我的程序了。谢谢,Damien_The_Unbeliever!
我有 C# 应用程序,它可以执行数据库存储过程。我可以成功地从这些过程中获得结果,但是 SQL Server Profiler 显示 'sp_reset_connection' 而不是过程名称。我在 SQL Server Profiler 中将事件过滤器设置为 'Stored Procedures'。在我有 'ObjectName' 和 'TextData' 的列中,当我从我的应用程序执行存储过程时,它们都显示 'sp_reset_connection'。
C# 代码(变体代码等同于 "exec dbo.sp_name_1"):
public string ExecSpReturnTime(string connectionString, string code)
{
long execTime = 0;
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.StatisticsEnabled = true;
connection.Open();
using (SqlCommand command = new SqlCommand(code, connection))
{
command.ExecuteNonQuery();
}
var stats = connection.RetrieveStatistics();
execTime = (long)stats["ExecutionTime"];
}
return execTime.ToString();
}
我在 SQL Profiler 'Stored Procedures -> SP:Complited' 中添加了过滤器,现在我可以看到我的程序了。谢谢,Damien_The_Unbeliever!