日期:2014-05-17  浏览次数:20697 次

SQL通过if else判断后插入不同语句
if not exists (select * from syscolumns where id = object_id('student') and name = 'remark')
begin
insert (number,name,age) into values('60024597','张三',21)
end
else
begin
insert (number,name,age remark) into values('60024597','张三',21)
end

这样的语句,如果student表不存在列remark执行的时候就会提示李明remark无效,如何解决呢?

不使用储存过程啊

我的临时解决方案是存在先增加列,插入后,通过判断NULL值删除列

请高手指导啊

------解决方案--------------------
引用:
引用:
列的增,删也太随意了。
age remark之间缺个逗号吧

这个是我举例的笔误,我想要的是解决方案,两版本中student表,老版本只有3个字段列,新版本有4个 字段列,我想我写插入语句的时候可以用if else 自动判断后执行里面的语句,第一条分支的语句含有3个字段列,第二条分支含有4个字段列,但是现在的问题是,我在老版本执行语句的时候,S……


if not exists (select * from syscolumns where id = object_id('student') and name = 'remark')
begin
EXEC('insert into student (number,name,age)  values(''60024597'',''张三'',21)')
end
else
begin
insert  into  student (number,name,age,remark)values('60024597','张三',21,'2012年毕业')
end


------解决方案--------------------




if not exists (select * from syscolumns where id = object_id('student') and name = 'remark')
begin
insert into student (number,name,age)  values('60024597','张三',21)
end
else
begin
insert  into  student (number,name,age,remark)values('60024597','张三',21,'2012年毕业')
end

运行之后的结果正常......