【问题标题】:Do you know a tool with GUI to edit data in SQL Azure Federation?你知道一个带有 GUI 的工具来编辑 SQL Azure 联合中的数据吗?
【发布时间】:2012-12-02 20:36:30
【问题描述】:

我正在将应用程序迁移到 SQL Azure 联合,我希望在没有 SQL 的情况下查看和编辑表格内容(这只是为了测试)。

使用标准 SQL 数据库(SQL Server 或 SQL Azure),我可以使用其中之一:

  • Management Studio (SSMS) 查看和编辑数据:右键单击表格 > 编辑前 xx 行。

  • Visual Studio:在服务器资源管理器中,我连接到我的数据库,右键单击一个表,然后单击“显示表数据”。

当然,这不适用于 SQL Azure 联合。 你知道一个工具(甚至很简单),免费(如果可能的话),可以在联盟成员中编辑我的数据吗?

【问题讨论】:

    标签: azure azure-sql-database federation


    【解决方案1】:

    顺便说一句,连接到 SQL Azure 数据库时,您不能使用 SSMS 中的 Edit top xxx rows。该选项被禁用(它甚至没有在上下文菜单中列出)。

    不过,它适用于 Visual Studio (Visual Studio 2012 SQL Server Explorer)。这很有趣。

    它也适用于联邦。您的联邦成员实际上是一个单独的数据库,具有一些奇怪的生成名称。使用 VS SQL Server Explorer 连接到 SQL Azure Server。然后,当您列出树中的所有数据库时,您将看到其他数据库,在您的联邦根目录旁边:

    现在唯一剩下的就是让您知道哪个system-xxxxx 数据库对应于哪个联邦成员。您可以从that article 找到它。以下查询可能会有所帮助:

    -- 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
    

    当您只有一个联邦和一个联邦成员时,您的任务相当容易实现(因为您将只有一个 system-xxx-xxx-x DB)。但是一旦你分裂,你就会想知道你需要与哪个确切的联邦成员数据库对话。

    更新

    有一种可靠的方法可以获取特定联合成员的准确数据库名称。您必须连接到要在其中编辑数据的联邦成员。例如,如果我们的联邦名为 MyFirstFederation 并且联邦分发密钥名称为 FederationKey,并且我们希望连接到数据为 10000 的联邦成员对于联合键的值,我们执行:

    USE FEDERATION MyFirstFederation(FederationKey = 10000) WITH RESET
    GO
    

    在我们执行的同一上下文中:

    SELECT * FROM sys.databases
    GO
    

    这将列出mastersystem-xxxx-yyy-zzz。前者将是确切的数据库,其中包含 FederationKey 值为 10000 的成员(以及该特定联邦成员范围内的所有其他内容)。

    现在我们知道了我们想要在 Visual Studio 2012 SQL Server Explorer 中选择的数据库的确切名称,并且能够直观地编辑内容。虽然它有点慢,但它是您要求的 GUI 工具。

    【讨论】:

    • 这完美地回答了我的问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多