У меня есть база данных, использующая запись данных изменений (CDC), созданная из проекта базы данных Visual Studio (GDR2).Visual Studio + Database Edition + CDC = Deploy Fail
Моя проблема заключается в том, что у меня есть хранимая процедура, которая анализирует информацию CDC и затем возвращает данные. Как эта проблема вы спрашиваете? Ну, порядок работы выглядит следующим образом.
- Предварительное развертывание сценария
- Таблицы
- Индексы, ключи и т.д.
- Процедуры
- после развертывания сценария
Внутри скрипта после развертывания, где я включаю CDC. Здесь лежит проблема. Процедура, действующая на таблицах CDC, бомбит, потому что их еще нет! Я попытался поместить вызов sys.sp_cdc_enable_table в скрипт, который создает таблицу, но это не нравится.
Ошибка 102 TSD03070: Это утверждение не признано в этом контексте. C: ... \ Schema Objects \ Schemas \ ДБО \ Tables \ Foo.table.sql 20 1 Foo
- Есть ли лучше/встроенный способ включения CDC таким образом, что это ссылки доступны, когда создаются хранимые процедуры?
- Есть ли способ запустить скрипт после создания таблиц, но до создания других объектов?
- Как насчет возможности создания зависимостей процедуры?
- Или, может быть, я просто делаю то, что не должно быть сделано?!?!
Теперь у меня есть работа.
- Закомментируйте тело sproc
- Deploy (CDC создается)
- раскомментировать sproc
- Deploy
- Все отлично, пока в следующий раз, я не обновлять CDC отслеживаются таблицу. Затем мне нужно прокомментировать процедуру «оскорбления».
Спасибо, что прочитали мой вопрос и спасибо за вашу помощь!
Я не уверен, что это сработает. Proc - файл, foo.proc.sql, эта визуальная студия выполняется каждый раз, когда я пытаюсь развернуть. Сам файл является CREATE PROCEDURE dbo.foo AS ... Я не уверен, как работает развернуть, если он все сжимает, а затем начинает с нуля. Периодический характер проблемы делает его PITA. Например, нет новых столбцов ATM, он работает классно :) –