我正在尝试为将数据从一个模式版本迁移到另一个模式版本提供一般解决方案。当源架构中的列数据类型与目标的列数据类型不匹配时,会出现问题。我想创建一个查询,它将对列数据类型执行初步比较,以返回在迁移之前需要修复哪些列。
我目前的做法是从information_schema.columns
返回表格和列名称,其中目录之间的DATA_TYPE
不匹配。但是,直接查询information_schema
只会返回连接目录中的结果。
是否有人写过这样的查询?
答案 0 :(得分:3)
我通过直接查询系统表来实现这一点。查看syscolumns
和sysobjects
表。您也可以跨链接服务器加入
select t1.name as tname,c1.name as cname
from adventureworks.dbo.syscolumns c1
join adventureworks.dbo.sysobjects t1 on c1.id = t1.id
where t1.type = 'U'
order by t1.name,c1.colorder
答案 1 :(得分:2)
我一直处于幸运的位置,拥有红门Schema compare我认为会做你所要求的。便宜两倍的价格!