Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как мога да уведомя моята програма, когато базата данни е актуализирана?

Анкетиращата база данни не е много елегантно решение.

SqlDependency от ADO.NET ще бъде полезно във вашия случай. Той не използва механизъм за анкетиране, а за уведомяване. Известията се предоставят от Service Broker във вашата база данни, така че ще трябва да активирате тази услуга във вашата база данни. OnChange събитие ще се повдигне, когато определена таблица се промени (актуализация, изтриване, вмъкване..)

Ето пример как да използвате SqlDependency:

void Initialization()
{
    // Create a dependency connection.
    SqlDependency.Start(connectionString, queueName);
}

void SomeMethod()
{
    // Assume connection is an open SqlConnection.

    // Create a new SqlCommand object.
    using (SqlCommand command=new SqlCommand(
        "SELECT ShipperID, CompanyName, Phone FROM dbo.Shippers", 
        connection))
    {

        // Create a dependency and associate it with the SqlCommand.
        SqlDependency dependency=new SqlDependency(command);
        // Maintain the refence in a class member.

        // Subscribe to the SqlDependency event.
        dependency.OnChange+=new
           OnChangeEventHandler(OnDependencyChange);

        // Execute the command.
        using (SqlDataReader reader = command.ExecuteReader())
        {
            // Process the DataReader.
        }
    }
}

// Handler method
void OnDependencyChange(object sender, 
   SqlNotificationEventArgs e )
{
  // Handle the event (for example, invalidate this cache entry).
}

void Termination()
{
    // Release the dependency.
    SqlDependency.Stop(connectionString, queueName);
}

от http://msdn.microsoft.com/en-us/library/ 62xk7953.aspx

Ето как да активирате Service Broker (имайте предвид, че ще имате ексклузивност в базата данни, за да направите това - най-добре го направете след рестартиране на sql сървъра):http://blogs.sftsrc.com/stuart/archive/2007/06/13/42.aspx (Неработеща връзка)

Възможна алтернативна връзка:http://technet. microsoft.com/en-us/library/ms166086(v=sql.105).aspx



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пуснете първичния ключ с помощта на скрипт в базата данни на SQL Server

  2. Създайте вложени JSON масиви, като използвате FOR JSON PATH

  3. Разстояние между две точки, използвайки тип данни за география в sqlserver 2008?

  4. SSRS:Как да създадете отчет като обобщена таблица в ssrs 2008 r2

  5. SQL Server - обединете редовете в списък, разделен със запетая