DB2 SQL查询来比较2个模式

时间:2011-10-13 23:41:21

标签: sql schema db2 compare schema-compare

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

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

我的SQL知识/经验非常有限,这是我的“学习”任务之一。我没有取得多大进展,感觉非常困难。任何人都可以给我建议吗?非常感谢帮助!

2 个答案:

答案 0 :(得分:0)

我假设你使用模式表示表格的模式,对吧?所有这些信息都可以通过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中的所有列。

答案 1 :(得分:0)

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