如例子般---
设定 在UI输入两个字段,对数据库的A和B两个字段操作要求, 1) A更新B不更新,2) A不更新B更新,3) A和B都更新。要在数据访问层进行输入SQL语句连接。如何实现,SQL语句咋样的啊 如果是一个操作就一条SQL语句,那样也可以。但是要更新10个字段或者更多,那样进行一个操作就一条SQL语句,这样的任务岂不是超级繁琐的吗,也不利于修改!!有没就一两条的SQL语句就可以全部实现的! 新手处女贴求助啦
设定 在UI输入两个字段,对数据库的A和B两个字段操作要求, 1) A更新B不更新,2) A不更新B更新,3) A和B都更新。要在数据访问层进行输入SQL语句连接。如何实现,SQL语句咋样的啊 如果是一个操作就一条SQL语句,那样也可以。但是要更新10个字段或者更多,那样进行一个操作就一条SQL语句,这样的任务岂不是超级繁琐的吗,也不利于修改!!有没就一两条的SQL语句就可以全部实现的! 新手处女贴求助啦
declare @s varchar(2),@sql nvarchar(200),@s1 varchar(20),@s2 varchar(20)
set @s = '1'
set @s1 ='abc'
set @s2 ='def'
set @sql ='update tb set (case when '+@s+'=''1'' then A when '+@s+'=''2'' then B else A end)='''+@s1+''',(case when '+@s+'!=''1'' and '+@s+'!=''2'' then B end)='+@s2+' where 条件'
exec(@sql)
根据条件拼接要更新的字段
declare @s varchar(1000),@a varchar(10)
set @a='aaaa'
set @s='col1 ='''+@a+''',col2='''+@a+''''
--这里是sql的写法,你可以用你的程序语言拼接一个这样的字符串传过去,
数据库执行下面的语句就可以了
--print 'update tb set '+@s+' where 1=1'--可以在这里输出你的语句验证正确性
exec('update tb set '+@s+' where 1=1')
set @id='1' --选择编号
set @name1='玫瑰' --输入原字段(不同的字段)
set @name2='康乃馨' --输入新字段(必须与@name1的字段类型相同。 如 @name1可以输入节日'情人节',@name2则输入对应相同类型字段'妇女节') if ( @name1=(select k_kind from kind where k_id=@id) ) update kind set k_kind=@name2 where k_id=@id
else
if ( @name1=(select k_object from kind where k_id=@id) ) update kind set k_object=@name2 where k_id=@id
else
if ( @name1=(select k_festival from kind where k_id=@id) ) update kind set k_festival=@name2 where k_id=@id
else
print'出错了'