Q:在第一个表里存储是用的CHAR的,同样的数据要转到第二个表里的INT里,原来的数据一般也是不会出错的,都是以文本形式的数字,但有时候会有一些垃圾数据出来,比如全角数字之类的,这样在插入的时候会出错,过程中断。
至于前面的判断修改已经不可能了,只能想办法在这个存储过程里处理。原来的垃圾程序,现在能维护的就这些了。
SQL类似于:
insert into a(id) --ID为INT类型
select b.id --ID为CHAR类型
from b
偶想要出错就忽略过去,如何处理?
谢谢!!
insert into a(id)
select b.id
from b
where isnumeric(id) = 1
insert into a(id) --ID为INT类型
select case when isnumeric(b.id)=1 then cast(b.id as int) else null end --ID为CHAR类型
from b