如何在进行数据映射或迁移之前验证数据

时间:2014-11-29 14:13:19

标签: sql sql-server validation migration mapping

我有一个任务,我需要将数据从一个table1移动到table2,我有源列和目标列,但在移动数据之前,有可能发现源列中的任何数据都不适合目标列因为目标字段类型差异或字段长度不那么?

就像在一个场景中我有源列,它是char(1),我试图将该列数据映射到int列,这里源列中的大多数行都有整数值,但在某些行中有一些字母字符,所以我想找出所有那些将要失败的行......逻辑应该适用于所有数据类型。

提前致谢!!

1 个答案:

答案 0 :(得分:0)

使用此代码查找New table和Old table之间不同(数据类型)的列。

SELECT TABLE_SCHEMA,COLUMN_NAME,IS_NULLABLE,DATA_TYPE,
       CHARACTER_MAXIMUM_LENGTH,NUMERIC_PRECISION,NUMERIC_SCALE
FROM   INFORMATION_SCHEMA.COLUMNS
WHERE  TABLE_NAME = 'New_Table' AND TABLE_SCHEMA='Table_Schema'
EXCEPT
SELECT TABLE_SCHEMA,COLUMN_NAME,IS_NULLABLE,DATA_TYPE,
       CHARACTER_MAXIMUM_LENGTH,NUMERIC_PRECISION,NUMERIC_SCALE
FROM   INFORMATION_SCHEMA.COLUMNS
WHERE  TABLE_NAME = 'Old_Table' AND TABLE_SCHEMA='Table_Schema'