SQL71501: Триггер: [dbo].[TriggerName] имеет неразрешенную ссылку на объект [dbo].[TableName]

У меня есть проект SQL с некоторыми функциями и триггерами.

В Visual Studio 2010 я мог просто указать строку подключения к базе данных и выполнить развертывание. Это сработало отлично.

Но теперь, после миграции на Visual Studio 2013, я получаю много ошибок, подобных этой, в сгенерированном файле sql при попытке создать проект:

SQL71501: Trigger: [dbo].[TriggerName] has an unresolved reference 
to object [dbo].[TableName]

Как это должно быть исправлено?

4 ответа

Удалить ссылку на базу данных перед dbo в CREATE TRIGGER sql, тогда проверка будет успешной, потому что Visual Studio будет правильно ссылаться на таблицу в локальном проекте.

Возникла похожая проблема с "SQL71501: неразрешенная ссылка на объект". Оказывается, файлы.sql не были добавлены в проект так, как этого ожидала Visual Studio. В данном случае исправление заключается в том, чтобы "исключить" файл.sql из проекта, а затем повторно "добавить" файл в проект базы данных как "существующий элемент". Это привело к разрешению ссылок.

Вы должны импортировать базу данных в Visual Studio для таблицы триггеров. Перейдите в Project>Import>Database.... Обратите внимание, если опция [Database...] отключена в меню, попробуйте закрыть решение и снова открыть его. Теперь перед компиляцией проекта импортируйте базу данных, которая содержит таблицу, связанную с вашим триггером. Это должно решить вашу проблему.

В моем случае я работал над триггерами SQL CLR.

В проекте CLR была ссылка на «основной» проект базы данных, который содержал все таблицы, к которым я прикреплял указанные триггеры.

Ранее я добавил таблицу в «основной» проект базы данных, но не перестраивал ее.

Я обычно не создаю его, так как я просто использую его как место с контролируемым исходным кодом для хранения моей схемы.

Поэтому, чтобы исправить ошибку, мне нужно было построить указанный проект базы данных.

Я подозреваю, что Visual Studio кэширует представление последней сборки каждого проекта базы данных, чтобы использовать его для разрешения ссылок на объекты.

Другие вопросы по тегам