【发布时间】:2011-06-04 19:59:55
【问题描述】:
我有两张桌子;一个是第二个的旧版本。我想将新字段中的字段添加到第二个字段。有没有一种简单的方法可以做到这一点而无需手动解析字段(有很多)?
同样,我只是添加字段,因此当我将旧表设为最新时,我不必从旧表中删除任何数据。
谢谢!
PS SQL Server 2005。
【问题讨论】:
标签: sql sql-server-2005 dml
我有两张桌子;一个是第二个的旧版本。我想将新字段中的字段添加到第二个字段。有没有一种简单的方法可以做到这一点而无需手动解析字段(有很多)?
同样,我只是添加字段,因此当我将旧表设为最新时,我不必从旧表中删除任何数据。
谢谢!
PS SQL Server 2005。
【问题讨论】:
标签: sql sql-server-2005 dml
这是一个列出表列的查询:
SELECT *
FROM syscolumns
WHERE Id IN (SELECT ID from sysobjects WHERE name = 'TABLENAME')
对两个表运行查询,过滤掉UNION,你至少有一个punchlist。
【讨论】:
这将显示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'))
【讨论】:
是的,有一个工具 tablediff.exe link text 或 Microsoft Technet
【讨论】: