Я импортировал несколько таблиц из SQL Server 2000 в свою базу данных 2008 года. Все импортируемые таблицы с префиксом мое имя пользователя , например: erpadmin.tablename
.
В свойствах таблицы в качестве схемы БД указано «erpadmin». Когда я пишу запрос, мне нужно включить «erpadmin». перед всеми именами таблиц, что сбивает с толку.
Текущий результат:
select *
from erpadmin.tablename
Желаемый результат:
select *
from tablename
источник
select ... from table5 ;
) и получают разные результаты. Это плохо для кэширования плана, а также плохо для устранения неполадок (специалист службы поддержки, «этот запрос работает нормально здесь»). Кроме того, привязка схемы, которая требуется для индексации функций и представлений, требует двух имен частей. TLDR: перестань быть ленивым - используйте две части имени.Как дополнение к ответу @AdamWenger. Для создания сценариев для перехода на другую схему вы можете использовать следующий сценарий
источник
Вероятно, ваша проблема связана с тем, как была выполнена миграция. Материал не должен быть привязан к вашему пользователю, если вы не являетесь владельцем.
Схемы предназначены для того, чтобы помочь вам разделить таблицы по тому, что имеет смысл. Предположим, у вас есть одна таблица ресурсов для отдела кадров и вы хотите отдельную таблицу для производственного отдела, сохраняя обе в одной базе данных. В этом случае вы можете иметь две таблицы с именами ресурсов, одну в производственной схеме, а другую в схеме HR. Вот почему необходимо указывать shcemas, если вы не вносите материал в схему по умолчанию.
Если вы не переделываете миграцию по какой-либо другой причине, то перевод Адама Венгера должен быть разумным вариантом.
источник
Запустите вашу команду, указав, что у
USE [tablename]
вашего запроса нет связанной базы данных, на которую вы ссылаетесь, и база данных, на которую вы просматриваете, не является значением по умолчанию для вошедшего в систему пользователя. В верхней части окна запроса оно, вероятно, говорит «master».источник
[database_name]
, верно?