0

次の SQL Azure 接続文字列で実行されるプロジェクト ( project1など) があります。

Server=tcp:....database.windows.net,1433;Database=project1;User ID=...

データベースproject1が存在し、project1 のすべてが正常に動作します。

次に、2 番目のプロジェクト ( project2 )に取り組んでおり、それを 2 番目のクラウド サービスとして Azure にアップロードしました。そのデータを別のスキーマでデータベースproject1に格納するつもりでしたが(2 つのプロジェクトをマージする計画があるため)、誤って次の接続文字列を使用してプロジェクトをデプロイしてしまいました。

Server=tcp:....database.windows.net,1433;Database=project2;User ID=...

project2 のすべてが正常に機能していましたが、クラウド サービスにデータを入力したにもかかわらず、データベースproject1内の project2 のテーブルが空であることに気付きました。次に、接続文字列がデータベースproject2を指していることに気付きました。

明確にするために、project2という名前の SQL データベースはありません。SQL Management Studio だけでなく、Silverlight SQL Azure データベース クライアントもチェックインしました。

これは説明できません。クラウド サービスの作業ができたので、どういうわけか Windows Azure または SQL Azure がデータベース プロジェクトを暗黙のうちに作成したに違いありませんproject2 がそのデータを保存した「隠れた場所」があるはずです。

これはバグですか、それとも何か不足していますか?

4

1 に答える 1

1

存在しないデータベースに接続しようとすると、自動的にマスター データベースに接続されます。少なくとも前回試したときはそうでした。ただし、マスターはクラウドでは読み取り専用であるため、マスターに接続するとほとんどのアプリが失敗することが予想されます。SQL Database はデータベースを自動的に作成しないため、それもできません。コード内のエラーをトラップ/サイレンシングしていて、その結果、実際にマスターに接続されていると判断できなかった可能性がありますか?

于 2013-03-29T17:33:16.070 に答える