我正在尝试对两个大表(超过 600 列)执行联合。两个表中的所有变量都应该具有相同的格式,但它们是由两个不同的团队分别准备的。
SELECT * into #FINAL_TABLE
from
(select * from Table1
UNION
select * FROM Table2 ) as tmp
我收到一个错误,其中包含有关一列中数据类型错误的信息:
消息 8114,级别 16,状态 5,第 600 行
将数据类型 nvarchar 转换为数字时出错。
基于那个错误,我不能说:
是否有更有效的方法来识别导致日期类型不匹配错误的所有列,然后逐列检查?
此查询应识别两个表之间的数据类型不匹配。
SELECT
IST1.COLUMN_NAME as Table1_column
,IST1.DATA_TYPE as Table1_datatype
,IST2.COLUMN_NAME as Table2_column
,IST2.DATA_TYPE as Table2_datatype
FROM information_schema.columns IST1
INNER JOIN information_schema.columns IST2
ON IST1.ORDINAL_POSITION=IST2.ORDINAL_POSITION
WHERE IST1.table_name='Table1' AND IST1.TABLE_SCHEMA='dbo'
AND IST2.table_name='Table2' AND IST2.TABLE_SCHEMA='dbo'
AND IST1.DATA_TYPE <> IST2.DATA_TYPE
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句