Влияние на SqlCacheDependency и Broker Service при изменении схемы базы данных - PullRequest
0 голосов
/ 11 ноября 2011

Я создаю приложение с Sql-кэшированной зависимостью.

Для этого я включил посредника с помощью

Alter database test ENABLE_BROKER

После добавления двух новых таблиц в базу данных.

Но я обнаружил, что не могу получить никаких служб уведомлений для новых таблиц, которые я добавил.

Даже я использую

Alter datatbase test New_Broker

Эта команда продолжает выполняться, поэтому я отменяю ее безлюбой успех.

Можете ли вы указать, что мне не хватает

Любая помощь оценена

1 Ответ

1 голос
/ 03 декабря 2011

Похоже, вы задаете два вопроса:

  1. Как предотвратить зависание SET ENABLE_BROKER

    ИЗМЕНЕНИЕ БАЗЫ ДАННЫХ [YourDBName] SET ENABLE_BROKER с немедленным отступом

  2. Может ли компонент Service Broker получать уведомления об изменении схемы?

Уведомления только для существующих таблиц. Это может привести к тому, что вы попытаетесь зарегистрировать зависимость от sys.tables, но системные запросы и таблицы не допускаются в запросе на уведомления.

Вы должны иметь возможность обойти эту проблему, настроив триггер DDL, который вставляется в специальную таблицу, а затем выдает запросы к этой таблице. Например:

CREATE TRIGGER [MyTrigger] ON DATABASE AFTER CREATE_TABLE AS ...
...