EnumLocks 方法

枚举数据库上持有的所有当前锁的列表。

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

语法

声明
Public Function EnumLocks As DataTable
用法
Dim instance As Database
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 对象值,该值包含数据库上持有的锁列表以及有关这些锁的类型和位置的信息。该表描述所返回的 DataTable 的不同列。

数据类型

说明

RequestorSpid

Int32

当前持有数据库资源的锁的进程的系统进程 ID 值。

LockType

String

锁类型的说明。有关不同锁类型的说明,请参阅 syslockinfo 表。

数据库

String

对其持有锁的数据库的名称。

String

对其持有锁的表名称。仅当持有表锁时,此字段才包含值。

Index

String

对其持有锁的索引名称。仅当持有索引锁时,此字段才包含值。

Status

Int32

锁的状态,可以为下列值之一:

1 = 已授予。

2 = 正在转换。

3 = 正在等待。

示例

The example runs a Server object enumeration method, but extracting the information from the DataTable object is the same for Database enumeration methods.

VB

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Call the EnumCollations method and return collation information to DataTable variable.
Dim d As DataTable
'Select the returned data into an array of DataRow.
d = srv.EnumCollations
'Iterate through the rows and display collation details for the instance of SQL Server.
Dim r As DataRow
Dim c As DataColumn
For Each r In d.Rows
    Console.WriteLine("============================================")
    For Each c In r.Table.Columns
        Console.WriteLine(c.ColumnName + " = " + r(c).ToString)
    Next
Next

PowerShell

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

$d = new-object System.Data.Datatable
$d = $srv.EnumCollations

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