Webホストを切り替えて、データベースをバックアップしています。新しいホストの制限により、.bakファイルを復元できず、復元するために送信する必要がありました。彼らがそれを復元したら、私は私のアプリケーションを実行しました私はこれを手に入れました
System.Data.SqlClient.SqlException: Invalid object name "<table name>"
アプリケーションからテーブルをクエリしようとするときはいつでも。ただし、同じユーザー名とパスワードを使用してManagement Studioからログインし、テーブルをクエリすることに問題はありません。
SQLServer2008でmvc3サイトを実行しています
アプリケーションを実行しようとしたときにこれらの例外が発生する理由を誰かが知っていますか?
編集:
いくつかの詳細情報:
古いデータベースで使用していたユーザー名はKimpo54321だったので、作成したすべてのテーブルにはこのKimpo54321のようにプレフィックスが付けられました。そこで、Webアプリの最初のクエリに追加してみたところSELECT * FROM Kimpo54321.<tablename>
、例外なくクエリが渡されました。
これで、アプリケーションの前半で各テーブル名の前にこれを付ける必要がなくなり、すべてのクエリに適用したくありません。これを修正する方法はありますか?
編集:
これを実行して、各テーブルのスキーマ変更行を取得し、すべてをに変更してdbo
、最終的に機能しました。答えを見つける正しい方向に私を向けてくれたthnxaaron
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')