Проекты баз данных VS2010 - глобальные системные объекты, имеющие ссылку на пользовательскую базу данных

В проекте базы данных VS2010 у меня есть что-то вроде следующего:

SELECT object_id
FROM [$(MyOtherDB)].sys.tables

Другими словами, обращение к глобальному системному объекту через ссылку на пользовательскую базу данных. Я установил ссылки на master.dbschema как из содержащего проекта, так и из проекта MyOtherDB, а также ссылку из содержащего проекта на проект MyOtherDB, но все еще получаю предупреждения SQL04151. В этой теме есть дополнительная информация (где Герт Драперс, кажется, подтверждает, что это ошибка): http://social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/914c8560-f9c3-40b6-9275-5df48baef9b1.

Мне кажется, это ошибка. Объект внутри файла master.dbschema помечен как GloballyScoped, что означает, что он находится внутри глобального пространства имен, что должно означать, что вы можете ссылаться на него, используя следующие способы:

  1. [мастер]. [система]. [объекты]
  2. [userdb]. [sys]. [объекты]
  3. [sys]. [объекты]

Вариант 2 явно не работает, хотя должен.

Других ссылок на этот сценарий в Google я не нашел. Мне просто интересно, сталкивался ли кто-нибудь с этим и знал ли какие-либо исправления или обходные пути?


person Tom Hunter    schedule 03.01.2013    source источник
comment
Посмотрите, помогает ли этот пост http://stackoverflow.com/questions/2568548/vs-2010-build-database-project-receive-sql04151   -  person Kaf    schedule 03.01.2013
comment
Спасибо @Kaf, но я боюсь, что это не совсем подходит для моего сценария. У меня есть перекрестная ссылка базы данных на глобальный системный объект.   -  person Tom Hunter    schedule 03.01.2013