Извещение об изменениях в результатах запроса (Query Notification)
Знаете ли вы, что…
Query Notification в SQL 2005 – новая функциональность, позволяющая отправить запрос на SQL Server и потребовать генерации извещения в случае, если исполнение этого запроса вернет результат отличный от полученного изначально. Это значит, что если произошли какие-то изменения в данных таблиц, включенных в запрос, .NET код будет автоматически извещен.
Команды, посылаемые на сервер через клиентский API(ADO.NET, OLE DB, ODBC, SOAP) могут содержать свойство Notification, которое создать «подписку» на оповещение об изменении данных.
Например:
……………………………………………………………………………
SqlConnection c = new SqlConnection(…………………………);
SqlCommand cm = c.CreateCommand();
cm.CommandText = "Select id, time from dbo.t_table";
SqlString notifyId = "Notification_Id";
SqlString notifOpt = "service = service_name; local database = database_name";
int timeOut = 50000;
cm.Notification = new SqlNotificationRequest (notifyId.ToString(), notifOpt.ToString(), timeOut);
……………………………………………………………………………
Теперь, если результат, возвращаемый запросом Select id, time from dbo.t_table изменится, приложение получит извещение.
Эта технология может быть особенно полезна для кэширования результатов для web-сайтовских приложений.
Более подробно (но на английском J) можно почитать, например, здесь:
http://msdn2.microsoft.com/en-us/library/ms379594(VS.80).aspx