EnumLocks 方法

枚举 SQL Server 实例上持有的当前锁的列表。

命名空间:  Microsoft.SqlServer.Management.Smo
程序集:  Microsoft.SqlServer.Smo(在 Microsoft.SqlServer.Smo.dll 中)

语法

声明
Public Function EnumLocks As DataTable
用法
Dim instance As Server
Dim returnValue As DataTable

returnValue = instance.EnumLocks()
public DataTable EnumLocks()
public:
DataTable^ EnumLocks()
member EnumLocks : unit -> DataTable 
public function EnumLocks() : DataTable

返回值

类型:System.Data. . :: . .DataTable
一个 DataTable 系统对象值,该值包含 SQL Server 实例上的指定进程持有的当前锁的列表。该表描述所返回的 DataTable 的不同列。

数据类型

说明

RequestorSpid

Int32

唯一标识正在请求锁的进程的 SQL Server 进程 ID。

LockType

String

锁的类型。请参阅 sys.syslockinfo (Transact-SQL) 中的 req_mode。

数据库

String

包含锁的数据库的名称。

Schema

String

锁定的资源的架构。

Table

String

包含锁的表。

Index

String

包含锁的索引。

Status

Int32

锁的状态。1 表示授予,2 表示转换,3 表示等待。

注释

Use this method to determine the locks that are currently held on the instance of SQL Server. The information that is returned can help you identify locking problems that might affect performance.

示例

C#

Server srv = new Server("(local)");

DataTable d = srv.EnumLocks();
foreach (DataRow r in d.Rows)
{
   Console.WriteLine("============================================");
   foreach(DataColumn c in d.Columns)
   {
      Console.WriteLine(c.ColumnName + " = " + r[c].ToString());
   }
}

PowerShell

$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")

$d = $srv.EnumLocks()
foreach ($r in $d.Rows)
{
   Write-Host "============================================"
   Foreach ($c in $d.Columns)
   {
      Write-Host $c.ColumnName "=" $r[$c]
   }
}