有如下两个情形,都要保证SQL不报错:
1.向表t增加一个列varchar(20)
2.字符串转成数字
请问怎么实现?貌似需要考虑多种情况
------解决方案--------------------
- SQL code
-- 1、加字段,判断该字段如果存在不操作,否则添加字段if(exists(SELECT * FROM SysColumns WHERE id=Object_Id('yourtable') and [name]='columnname')) exec('alter table yourtable add columnname [varchar](20) ');-- 2、没太懂你的问题declare @a varchar(20)set @a = '100' -- 'abc'-- 变量或sql语句里可以用类似以下的方式处理set @a = case isnumeric(@a) when 1 then cast(@a as int) else null end;
------解决方案--------------------
1.1判断是否已经存在欲添加的字段名,若存在不操作,不存在添加。
1.2判断添加VARCHAR(20)后表字段的总长度是否超过8060限制。
2.这要看你欲转化的字符串是否有什么规律了,若无规律那只能一个字符一个字符的判断了。