C# 如何使用C获取SQL Server进程ID

C# 如何使用C获取SQL Server进程ID,c#,.net,sql-server,sql-server-2008,C#,.net,Sql Server,Sql Server 2008,在Windows Server 2008上,我有SQL Server 2008或更高版本2012的本地实例。服务器还将IIS配置为运行连接到该SQL server的ASP.NET web应用程序,以执行基本的选择、插入、更新和删除操作 我还有一个用C编写的Windows服务应用程序,它运行在同一台服务器上。我想向它添加一个函数,用于检查SQL Server进程上的CPU使用情况。我可以知道它的PID 我的问题是,如何获取SQL Server进程的进程ID using System.Diagnos

在Windows Server 2008上,我有SQL Server 2008或更高版本2012的本地实例。服务器还将IIS配置为运行连接到该SQL server的ASP.NET web应用程序,以执行基本的选择、插入、更新和删除操作

我还有一个用C编写的Windows服务应用程序,它运行在同一台服务器上。我想向它添加一个函数,用于检查SQL Server进程上的CPU使用情况。我可以知道它的PID

我的问题是,如何获取SQL Server进程的进程ID

using System.Diagnostics;   //at the top of your class


Process[] processlist = Process.GetProcesses();
foreach(Process theprocess in processlist){
Console.WriteLine(“Process: {0} ID: {1}”, theprocess.ProcessName, theprocess.Id);
}
希望这能让你开始

希望这能让你开始学习。

用它代替PID

不用PID,只需使用

试试这个

select SERVERPROPERTY('processid'),SERVERPROPERTY('productversion')
您可以按如下方式签入任务管理器

试试这个

select SERVERPROPERTY('processid'),SERVERPROPERTY('productversion')
您可以按如下方式签入任务管理器


在C中获取SQL Server实例的进程ID

var ProcessId = Process.GetProcesses()
                        .Where(P => P.ProcessName == "sqlservr")
                        .Select(P => P.Id);

在C中获取SQL Server实例的进程ID

var ProcessId = Process.GetProcesses()
                        .Where(P => P.ProcessName == "sqlservr")
                        .Select(P => P.Id);


是的,但是我怎么知道进程名呢?它是sqlservr.exe。顺便说一句,你看过这篇文章吗:不,我没有。谢谢只是好奇,为什么会有多个sqlservr.exe同时运行?是的,但是我怎么知道进程名呢?它是sqlservr.exe。顺便说一句,你看过这篇文章吗:不,我没有。谢谢奇怪的是,为什么会有多个sqlservr.exe同时运行?在这种情况下,FirstOrDefault不是最好的选择。machineYeah上可能会有更多的sql server实例,没错。我将修改我的答案。谢谢。在这种情况下,FirstOrDefault不是最好的选择。machineYeah上可能会有更多的sql server实例,没错。我将修改我的答案。谢谢。这是一个很酷的找到PID的方法。谢谢我检查了一下,它在我本地的SQL Server安装中起了作用。好奇的是,如果SQL Server没有安装在同一台机器上会发生什么?从上面的查询中,您可以得到远程连接的SQL Server的PID,但是如果SQL Server没有安装在您的本地机器上,这样,您就不会在本地服务器上的任务管理器进程中看到远程连接的sql server的PIDmachine@Sagarpatel:谢谢。还发现执行SELECT SERVERPROPERTY'MachineName';将返回可以与C中的Environment.MachineName进行比较的计算机名。@Sagarpatel:我会的。我需要先在我的实际代码中进行测试。谢谢。这是一个很酷的找到PID的方法。谢谢我检查了一下,它在我本地的SQL Server安装中起了作用。好奇的是,如果SQL Server没有安装在同一台机器上会发生什么?从上面的查询中,您可以得到远程连接的SQL Server的PID,但是如果SQL Server没有安装在您的本地机器上,这样,您就不会在本地服务器上的任务管理器进程中看到远程连接的sql server的PIDmachine@Sagarpatel:谢谢。还发现执行SELECT SERVERPROPERTY'MachineName';将返回可以与C中的Environment.MachineName进行比较的计算机名。@Sagarpatel:我会的。我需要先在我的实际代码中进行测试。谢谢