JYL*_*JYL 2 azure federation azure-sql-database
我正在将应用程序迁移到SQL Azure Federation,我喜欢在没有SQL的情况下查看和编辑表格内容(它仅用于测试).
使用标准SQL数据库(SQL Server或SQL Azure),我可以使用以下方法之一:
Management Studio(SSMS)查看和编辑数据:右键单击表>编辑顶部xx行.
Visual Studio:在服务器资源管理器中,我连接到我的数据库,右键单击一个表,然后单击"显示表数据".
当然,这对SQL Azure Federation不起作用.您是否知道一个工具(甚至简单),免费(如果可能),在联盟成员中编辑我的数据?
顺便说一句,Edit top xxx rows连接到SQL Azure数据库时,无法使用SSMS.此选项已禁用(甚至未在上下文菜单中列出).
但它适用于Visual Studio(Visual Studio 2012 SQL Server Explorer).这很有趣.
它也适用于联盟.您的联盟成员实际上是一个单独的数据库,其中包含一些奇怪的名称 与VS SQL Server Explorer连接到SQL Azure Server.然后,当您列出树中的所有数据库时,您将看到联盟根旁边的其他数据库:

现在唯一剩下的就是让您知道哪个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
Run Code Online (Sandbox Code Playgroud)
当您只有一个联合会只有一个联盟成员时,您的任务很容易实现(因为您只有一个system-xxx-xxx-x数据库).但是一旦拆分,您将需要找出需要与之交谈的联邦成员数据库.
UPDATE
有一种可靠的方法可以获取特定联合成员的确切数据库名称.您必须连接到要编辑数据的联合成员.例如,如果我们的联盟已命名MyFirstFederation并且联合分发密钥名称是FederationKey,并且我们要连接到联合成员的联合成员10000值为的联合成员,我们执行:
USE FEDERATION MyFirstFederation(FederationKey = 10000) WITH RESET
GO
Run Code Online (Sandbox Code Playgroud)
在我们执行的相同上下文中:
SELECT * FROM sys.databases
GO
Run Code Online (Sandbox Code Playgroud)
这将列出master和system-xxxx-yyy-zzz.前者将是确保拥有FederationKey值为10000的成员的完全数据库(以及具有该特定联合成员范围的所有其他成员).
现在我们知道要在Visual Studio 2012 SQL Server资源管理器中选择的数据库的确切名称,并且能够直观地编辑内容.虽然它有点慢,但它是你要求的GUI工具.
| 归档时间: |
|
| 查看次数: |
2698 次 |
| 最近记录: |