«Неверное имя объекта» после восстановления базы данных SQL Server 2008 - PullRequest
2 голосов
/ 15 июля 2011

Я переключаю свой веб-хостинг и резервное копирование базы данных.Из-за некоторых ограничений, связанных с моим новым хостом, я не смог восстановить файл .bak и должен был отправить их, чтобы они восстановили его.После того, как они восстановили его, я запустил свое приложение и получаю

System.Data.SqlClient.SqlException: Invalid object name "<table name>"

всякий раз, когда пытаюсь запросить таблицу из приложения.Тем не менее, у меня нет проблем, войдя через Management Studio с тем же именем пользователя и паролем и запрашивая таблицы.

Я использую сайт MVC 3 с SQL Server 2008

Кто-нибудь знает, почему я могу получить эти исключения при попытке запустить мое приложение?

РЕДАКТИРОВАТЬ:

Еще немного информации:

имя пользователя, которое я использовал в моей старой базе данных, было Kimpo54321, поэтому все таблицы, которые я создал, имели префикс, такой как Kimpo54321.поэтому я попытался добавить его к самому первому запросу в моем веб-приложении, чтобы он был SELECT * FROM Kimpo54321.<tablename>, и запрос прошел без исключения.

Теперь мне не нужно было добавлять префикс каждого имени таблицы к этому ранее в моемприложение, и я не хочу применять его ко всем моим запросам.Есть ли способ исправить это?

РЕДАКТИРОВАТЬ:

Я запустил это, чтобы получить строку изменения схемы для каждой таблицы и изменил все на dbo и он наконец заработал.Спасибо Аарону за то, что он указал мне правильное направление и нашел ответ

SELECT 'ALTER SCHEMA dbo TRANSFER ' + s.Name + '.' + o.Name 
    FROM sys.Objects o 
    INNER JOIN sys.Schemas s on o.schema_id = s.schema_id 
    WHERE s.Name = 'yourschema'
    And (o.Type = 'U' Or o.Type = 'P' Or o.Type = 'V')

Ответы [ 2 ]

4 голосов
/ 15 июля 2011

Вы ссылаетесь на схему (например, dbo.table против таблицы)?Возможно, что ваш пользователь на новом хосте имеет схему по умолчанию, отличную от вашего старого хоста.Как вы «запрашиваете таблицы» - щелкаете правой кнопкой мыши и выбираете один из вариантов, или используете точно такой же запрос, выданный приложением?

0 голосов
/ 15 июля 2011

Вероятно, это проблема, когда пользователь веб-приложения должен быть повторно добавлен в восстановленную базу данных. Некоторые пользователи не поддерживают свои разрешения при восстановлении базы данных на другом сервере SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...