Имя сервера в представлениях вызывает проблемы со сборкой в ​​Sql Server Project - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть проект SQL Server, в котором у меня есть представление

SELECT * FROM [Tracking].[dbo].[Document_tb]

Это вызывает проблему сборки

[dbo]. [TrackerDocumentTable_vw] имеет неразрешенную ссылкук объекту [Отслеживание]. [dbo]. [Document_tb].C: projects \ Schema Objects \ Schemas \ dbo \ Views \ TrackerDocumentTable_vw.sql 4.

Тот же запрос в SP и TVF, но они не выдают никаких исключений.Я попытался изменить метод сборки на «not in build», который частично решает мою проблему, но при сравнении схемы он исключает этот файл.Есть ли какая-либо конкретная причина, по которой VS создает исключение для представлений, но не для SP и TVF?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Ссылки на объекты, которые не могут быть найдены для sp и функций, рассматриваются как предупреждения для представлений как ошибки (см. Вкладку «Ошибки» и вкладку «Предупреждение»).

Почему это так, возможно, из-за того, что на сервере SQLмы можем создать процедуру, к которой я обращаюсь к несуществующему объекту, но для просмотра это не разрешено.Вы можете настроить в visual studio, что это будет также рассматриваться как ошибка.

0 голосов
/ 11 февраля 2019

Вероятно, это связано с отложенным разрешением имен, которое применяется к хранимым процедурам и многозначным табличным функциям.Ссылочные объекты не должны существовать во время создания, если синтаксис правильный.

Однако представления и другие типы функций хранят метаданные, например информацию столбца, и поэтому требуют, чтобы ссылочные объекты существовали во время компиляции.

Надеюсь, это поможет.

...