【问题标题】:Diff two tables in SQL Server and generate DML to adjust the one在 SQL Server 中比较两张表并生成 DML 以调整其中一张
【发布时间】:2011-06-04 19:59:55
【问题描述】:

我有两张桌子;一个是第二个的旧版本。我想将新字段中的字段添加到第二个字段。有没有一种简单的方法可以做到这一点而无需手动解析字段(有很多)?

同样,我只是添加字段,因此当我将旧表设为最新时,我不必从旧表中删除任何数据。

谢谢!

PS SQL Server 2005。

【问题讨论】:

    标签: sql sql-server-2005 dml


    【解决方案1】:
    1. Here 是一个工具。

    这是一个列出表列的查询:

    SELECT *
    FROM syscolumns
    WHERE Id IN (SELECT ID from sysobjects WHERE name = 'TABLENAME')
    

    对两个表运行查询,过滤掉UNION,你至少有一个punchlist。

    【讨论】:

      【解决方案2】:

      这将显示Table1 中不在Table2 中的列。

      SELECT *
      FROM syscolumns
      WHERE ID = Object_ID('Table1') Name Not IN (SELECT Name from sysColumns where ID = Object_ID('Table2'))
      

      syscolumns中的name、length、xtype等字段转化为DDL语句很简单

      SELECT 'alter table table2 add column ' + name + ' '+ type_name(xtype ) + etc, etc
      FROM syscolumns
      WHERE ID = Object_ID('Table1') Name Not IN (SELECT Name from sysColumns where ID = Object_ID('Table2'))
      

      【讨论】:

        【解决方案3】:

        是的,有一个工具 tablediff.exe link textMicrosoft Technet

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-04-26
          • 1970-01-01
          • 2019-02-02
          • 1970-01-01
          • 1970-01-01
          • 2015-12-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多