Esempio: Utilizzo del provider di eventi WMI con .NET Framework

Si applica a: SQL Server

L'esempio seguente crea un'applicazione in C# che usa il provider di eventi WMI per restituire i dati degli eventi per tutti gli eventi DDL (Data Definition Language) che si verificano in un'istanza di installazione predefinita di SQL Server.

Esempi

Per compilare l'esempio, utilizzare il file di comando seguente:

set compiler_path=C:\WINNT\Microsoft.NET\Framework\v2.0.50110

%compiler_path%\csc %1
using System;
using System.Management;

class SQLWEPExample
{
    public static void Main(string[] args)
    {
        string query =  @"SELECT * FROM DDL_EVENTS " ;
        // Default namespace for default instance of SQL Server
        string managementPath =
            @"\\.\root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER";
        ManagementEventWatcher  watcher =
            new ManagementEventWatcher(new WqlEventQuery (query));
        ManagementScope scope = new ManagementScope (managementPath);
        scope.Connect();
        watcher.Scope = scope;
        Console.WriteLine("Watching...");
        while (true)
        {
            ManagementBaseObject obj = watcher.WaitForNextEvent();
            Console.WriteLine("Event!");
            foreach (PropertyData data in obj.Properties)
            {
                Console.Write("{0}:", data.Name);
                if (data.Value == null)
                {
                    Console.WriteLine("<null>");
                }
                else
                {
                    Console.WriteLine(data.Value.ToString());
                }
            }
            Console.WriteLine("-----");
            Console.WriteLine();
            Console.WriteLine();
        }
    }
}