Когда можно квалифицировать имя таблицы или представления с помощью dbo в запросе? - PullRequest
1 голос
/ 25 ноября 2010

У меня есть представление в SQL Server, скажем, MY_VIEW.

Когда я выполняю команду SELECT * FROM MY_VIEW, она работает нормально.Однако, когда я выполняю его как SELECT * FROM dbo.MY_VIEW, я получаю * Неверное имя объекта 'MyDB.dbo.MY_VIEW' *

Я подключен к серверу SQL, используя sa.

Что не так с этим?И когда мы должны использовать dbo.MY_VIEW, а когда нет?

Обновление: Имя схемы в представлении - dbo, и когда я создал представление, я тоже подключился к sa.

Update2 Я обнаружил, что проблема была в сопоставлении с учетом регистра.Проблема была не из-за ДБО.префикс.Это произошло потому, что параметры сортировки базы данных были чувствительны к регистру, а имена таблиц в запросах были неправильными.

Ответы [ 3 ]

1 голос
/ 25 ноября 2010

Вы находитесь в базе данных master. Вы создали представление в главной базе данных. Ваш фактический запрос был SELECT * FROM MyDB.dbo.MY_VIEW. Попробуйте вместо этого создать представление в базе данных MyDB.

1 голос
/ 25 ноября 2010

Создавали ли вы ваши объекты под другим именем схемы, чем dbo?Это будет зависеть от имени схемы по умолчанию для вашей учетной записи пользователя, если вы не укажете его при создании представления.В SQL 2k5 и 2k8 я считаю, что поведение по умолчанию заключается в создании новой схемы для каждого пользователя вместо присвоения их схеме 'dbo'.

0 голосов
/ 29 декабря 2010

Я обнаружил, что проблема была в сопоставлении с учетом регистра. Проблема была не из-за ДБО. префикс. Это произошло потому, что параметры сортировки базы данных были чувствительны к регистру, а имена таблиц в запросах были неверными.

...