Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để thông báo cho chương trình của tôi khi cơ sở dữ liệu đã được cập nhật?

Cơ sở dữ liệu thăm dò ý kiến ​​không phải là giải pháp thanh lịch.

SqlDependency từ ADO.NET sẽ hữu ích trong trường hợp của bạn. Nó không sử dụng cơ chế bỏ phiếu nhưng thông báo. Các thông báo được cung cấp bởi Service Broker trong cơ sở dữ liệu của bạn, vì vậy bạn sẽ cần phải bật dịch vụ này trong cơ sở dữ liệu của mình. OnChange sự kiện sẽ tăng lên khi bảng được chỉ định thay đổi (cập nhật, xóa, chèn ..)

Đây là một ví dụ về cách sử dụng 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);
}

từ http://msdn.microsoft.com/en-us/library/ 62xk7953.aspx

Dưới đây là cách bật Service Broker (lưu ý rằng bạn sẽ có độc quyền trên cơ sở dữ liệu để làm điều đó - tốt nhất hãy làm điều đó sau khi khởi động lại máy chủ sql): http://blogs.sftsrc.com/stuart/archive/2007/06/13/42.aspx (Liên kết bị hỏng)

Liên kết thay thế có thể có: 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. Tham số có giá trị bảng trong Quy trình được lưu trữ và Khung thực thể 4.0

  2. Khả năng tương thích của SQL Server 2008 với SQL Server 2005

  3. thiết lập danh tính trên cột

  4. Các thay đổi về cấp phép Common Sense cho SQL Server 2014 Standard Edition

  5. Tập lệnh SQL Server 2008 để bỏ Ràng buộc PK có tên do hệ thống tạo