2009-08-31 10 views
0

SQLサーバー2005 DBをバックエンドとして実行しているWebアプリケーションがあります。本番サイトのDBバックを取り出し、開発マシンに復元しました。私は[352974_mg4l1] FROM 『SELECT *を実行すると、クエリ「はお客様 SELECT * FROM」を実行しようとしてログイン「SA」.Whenは、私は" 無効なオブジェクト名「お客様』のような メッセージを取得しかししています。 [お客様] "、それは記録を返す。 352974_mg4l1は、本番環境からdbバックアップを復元したときに、このデータベースのユーザーです。 私は最初に使用した単純な選択クエリ( "select * from customers")を使用してレコードを取得するために何をしなければなりません。私はログイン問題に関連する何かを知っています。これを解決する方法を教えてもらえますか?SQLサーバー:クエリ中にログインする問題

答えて

2

Customersデータベースオブジェクトは、dboスキーマによって所有されていません。

「お客様」を「sa」として参照すると、[dbo] [Customers]を探していますか?

私がすることをお勧めします:どちらか

  • オブジェクトのフルネームを提供どちらか、それはスキーマ

編集です変更:

これを試すと、テーブルのスキーマを変更するには:

ALTER SCHEMA dbo TRANSFER [352974_mg4l1].Customers; 

リファレンス:http://msdn.microsoft.com/en-us/library/ms173423.aspx

+0

スキーマを変更するにはどうすればよいですか?どこへ ? – Shyju

+0

各テーブルのスキーマが合理的に変更されていますか? – Shyju

+0

開発中のテストでデータベースを使用しているのであれば。 –

0

オンラインで書籍のsp_changeobjectownerを参照してください。それはあなたが所有者を変更するのに役立ちます。実際の問題は、オブジェクトがどのように特定の所有者に作成されたかである。これがprodに当てはまる場合、データベースにアクセスする他の人々にいくつかの大きな問題がある可能性があります。

+0

統合セキュリティを使用する場合、新しく作成されたデータベースオブジェクトは現在のユーザーにバインドされています –

+0

私は常に作成スクリプトでdboを指定します – HLGEM