我有两张桌子;一个是第二个的旧版本。我想将新字段中的字段添加到第二个字段。有没有一种简单的方法可以做到这一点而无需手动解析字段(有很多)?
同样,我只是添加字段,因此当我将旧表设为最新时,我不必从旧表中删除任何数据。
谢谢!
PS SQL 服务器 2005。
我有两张桌子;一个是第二个的旧版本。我想将新字段中的字段添加到第二个字段。有没有一种简单的方法可以做到这一点而无需手动解析字段(有很多)?
同样,我只是添加字段,因此当我将旧表设为最新时,我不必从旧表中删除任何数据。
谢谢!
PS SQL 服务器 2005。
这将显示Table1
不在的列Table2
。
SELECT *
FROM syscolumns
WHERE ID = Object_ID('Table1') Name Not IN (SELECT Name from sysColumns where ID = Object_ID('Table2'))
取name、length、xtype等字段syscolumns
转化为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链接文本或Microsoft Technet
这是一个将列出表的列的查询:
SELECT *
FROM syscolumns
WHERE Id IN (SELECT ID from sysobjects WHERE name = 'TABLENAME')
对两个表运行查询,过滤掉UNION
,你至少有一个穿孔列表。