2

アプリケーションを SQL Azure フェデレーションに移行していますが、SQL を使用せずにテーブルの内容を表示および編集したいと考えています (これはテスト用です)。

標準の SQL データベース (SQL Server または SQL Azure) では、次のいずれかを使用できます。

  • Management Studio (SSMS) でデータを表示および編集: テーブルを右クリック > 上位 xx 行を編集します。

  • Visual Studio : サーバー エクスプローラーでデータベースに接続し、テーブルを右クリックして [テーブル データの表示] をクリックします。

もちろん、これは SQL Azure フェデレーションでは機能しません。フェデレーション メンバーのデータを編集するための無料の (可能であれば) ツール (単純なものでも) を知っていますか?

4

1 に答える 1

7

Edit top xxx rowsところで、 SQL Azure データベースに接続している場合、SSMS からは使用できません。このオプションは無効になっています (コンテキスト メニューにも表示されません)。

ただし、Visual Studio (Visual Studio 2012 SQL Server Explorer) でも動作します。興味深いです。

また、フェデレーションでも機能します。フェデレーション メンバーは、実際には別のデータベースであり、奇妙な名前がいくつか生成されています。VS SQL Server Explorer で SQL Azure サーバーに接続します。次に、ツリー内のすべてのデータベースを一覧表示すると、フェデレーション ルートの横に他のデータベースが表示されます。

SQL Azure フェデレーション

system-xxxxxあとは、どのデータベースがどのフェデレーション メンバーに対応しているかを知るだけです。その記事からこれを見つけることができるかもしれません。次のクエリが役立つ場合があります。

-- Route connection to the federation root
USE FEDERATION ROOT WITH RESET
GO
-- View the federation root metadata
SELECT db_name() [db_name]
SELECT * FROM sys.federations
SELECT * FROM sys.federation_distributions
SELECT * FROM sys.federation_member_distributions ORDER BY federation_id, range_low;
GO

フェデレーション メンバーが 1 つだけのフェデレーションが 1 つしかない場合、タスクはかなり簡単に達成できます ( system-xxx-xxx-xDB が 1 つしかないため)。しかし、分裂するとすぐに、どのフェデレーション メンバー データベースと通信する必要があるかを確認する必要があります。

アップデート

特定のフェデレーション メンバーの正確なデータベース名を取得する信頼できる方法が 1 つあります。データを編集するフェデレーション メンバーに接続する必要があります。たとえば、フェデレーションに名前が付けられMyFirstFederation、フェデレーション ディストリビューション キーの名前がであり、フェデレーション キーの値のFederationKeyデータが存在するフェデレーション メンバーに接続する場合は、次のコマンドを実行します。 10000:

USE FEDERATION MyFirstFederation(FederationKey = 10000) WITH RESET
GO

同じコンテキストで、次を実行します。

SELECT * FROM sys.databases
GO

これにより、 と がリストmasterされsystem-xxxx-yyy-zzzます。前者は、FederationKey 値が 10000 のメンバー (およびその特定のフェデレーション メンバーの範囲内の他のすべて) を保持する正確なデータベースになります。

これで、Visual Studio 2012 SQL Server Explorer で選択するデータベースの正確な名前がわかったので、コンテンツを視覚的に編集できるようになります。少し遅いですが、求められている GUI ツールです。

于 2012-12-19T14:06:49.193 に答える