次の方法で共有


Events プロパティ

SQL Server のインスタンスに関連付けられているサーバー イベントを取得します。

名前空間:  Microsoft.SqlServer.Management.Smo
アセンブリ:  Microsoft.SqlServer.Smo (Microsoft.SqlServer.Smo.dll)

構文

'宣言
Public ReadOnly Property Events As ServerEvents
    Get
'使用
Dim instance As Server
Dim value As ServerEvents

value = instance.Events
public ServerEvents Events { get; }
public:
property ServerEvents^ Events {
    ServerEvents^ get ();
}
member Events : ServerEvents
function get Events () : ServerEvents

プロパティ値

型: Microsoft.SqlServer.Management.Smo. . :: . .ServerEvents
サーバー イベントを表す ServerEvents オブジェクトです。

説明

Events プロパティは、アプリケーションで処理するサーバー イベントへのサブスクリプションを制御する ServerEvents オブジェクトを参照しています。ServerEventSet オブジェクトを使用して、CreateDatabase イベントなど、特定のサーバー イベントのセットを含む変数を作成します。サーバーは、SubscribeToEvents オーバーロードのいずれかを呼び出すことによって、イベントをサブスクライブできます。その後、StartEvents メソッドによって、イベントを受信するサーバーが起動されます。

使用例

'Create an event handler subroutine that runs when a table is created.
Private Sub MyCreateEventHandler(ByVal sender As Object, ByVal e As ServerEventArgs)
    Console.WriteLine("A table has just been added to the AdventureWorks2008R2 database.")
End Sub
'Create an event handler subroutine that runs when a table is deleted.
Private Sub MyDropEventHandler(ByVal sender As Object, ByVal e As ServerEventArgs)
    Console.WriteLine("A table has just been dropped from the AdventureWorks2008R2 database.")
End Sub
Sub Main()
    'Connect to the local, default instance of SQL Server.
    Dim srv As Server
    srv = New Server
    'Reference the AdventureWorks2008R2 database.
    Dim db As Database
    db = srv.Databases("AdventureWorks2008R2")
    'Create a database event set that contains the CreateTable event only.
    Dim databaseCreateEventSet As New DatabaseEventSet
    databaseCreateEventSet.CreateTable = True
    'Create a server event handler and set it to the first event handler subroutine.
    Dim serverCreateEventHandler As ServerEventHandler
    serverCreateEventHandler = New ServerEventHandler(AddressOf MyCreateEventHandler)
    'Subscribe to the first server event handler when a CreateTable event occurs.
    db.Events.SubscribeToEvents(databaseCreateEventSet, serverCreateEventHandler)
    'Create a database event set that contains the DropTable event only.
    Dim databaseDropEventSet As New DatabaseEventSet
    databaseDropEventSet.DropTable = True
    'Create a server event handler and set it to the second event handler subroutine.
    Dim serverDropEventHandler As ServerEventHandler
    serverDropEventHandler = New ServerEventHandler(AddressOf MyDropEventHandler)
    'Subscribe to the second server event handler when a DropTable event occurs.
    db.Events.SubscribeToEvents(databaseDropEventSet, serverDropEventHandler)
    'Start event handling.
    db.Events.StartEvents()
    'Create a table on the database.
    Dim tb As Table
    tb = New Table(db, "Test_Table")
    Dim mycol1 As Column
    mycol1 = New Column(tb, "Name", DataType.NChar(50))
    mycol1.Collation = "Latin1_General_CI_AS"
    mycol1.Nullable = True
    tb.Columns.Add(mycol1)
    tb.Create()
    'Remove the table.
    tb.Drop()
    'Wait until the events have occured.
    Dim x As Integer
    Dim y As Integer
    For x = 1 To 1000000000
        y = x * 2
    Next
    'Stop event handling.
    db.Events.StopEvents()





End Sub