【问题标题】:DB2 SQL query to compare 2 schemas用于比较 2 个模式的 DB2 SQL 查询
【发布时间】:2011-12-07 09:08:55
【问题描述】:

我在整个网络上搜索此问题时无法找到解决方案,大多数回复都推荐了一个工具,这让我相信这对于 SQL 查询或其他东西可能非常困难,但是...

有人告诉我为我们的 DB2 数据库编写一个查询,使用 Toad 进行接口,它将比较 2 个模式并在有任何差异时提供结果。我知道 Toad 中存在此功能,但出于某种原因,我们的 DBA 不想使用它。购买额外的软件不是一种选择。

我的 SQL 知识/经验非常有限,这是我的“学习”任务之一。我没有取得太大的进步,感觉很卡。谁能给我建议?非常感谢您的帮助!

【问题讨论】:

    标签: sql schema db2 compare schema-compare


    【解决方案1】:

    我假设架构是指表的架构,对吗?所有这些信息都可以通过syscat 模式的视图获得。例如查看SYSCAT.TABLESSYSCAT.COLUMNS,或查看the documentation 了解更多信息。您可以像查询任何其他视图/表一样查询这些视图,因此要比较两个表是否包含相同的列,您可以执行以下操作:

      SELECT colname, colno, typeschema, typename FROM syscat.columns WHERE tabname = 'tab1' AND tabschema = 'schema'
      EXCEPT
      SELECT colname, colno, typeschema, typename FROM syscat.columns WHERE tabname = 'tab2' AND tabschema = 'schema'
    

    例如,这将不会返回 tab1 中的所有列,但不会返回 tab2 中的所有列。

    【讨论】:

    • 感谢您的帮助 - 我会尝试一下,看看在哪里可以找到。有很多表,所以我想我的下一步将是弄清楚如何使查询变得动态。再次感谢!
    【解决方案2】:

    试试 IBM Data Studio,它是免费的,你可以选择任意 2 个对象然后在它们之间进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多