1

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

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

谢谢!

PS SQL 服务器 2005。

4

3 回答 3

3

这将显示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'))
于 2011-01-06T18:31:04.323 回答
0

是的,有一个工具 tablediff.exe链接文本Microsoft Technet

于 2011-01-06T18:25:23.110 回答
0
  1. 是一个可以做到这一点的工具。

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

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

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

于 2011-01-06T18:25:40.850 回答