日期:2014-05-19  浏览次数:20376 次

多个字段分别更新,如何用存储过程实现?
我所有的数据操作都用存储过程,

如果我分别要修改用户信息表中的不同字段,如果每个字段的更新都用一个存储过程当然简单,但太烦琐,也不够聪明。
我想都用一个存储过程来做,怕如果更新时别的字段因为是空值,将其清空了。

大家帮我想个法吧。

------解决方案--------------------
传入参数为字段名和字段值不就可以更新所有字段了?
------解决方案--------------------
在数据库里设个默认值default( ' ')不就成了吗?
------解决方案--------------------
方法1)先指定好接口,譬如不需要更新的字段用特殊符号代替

譬如 exec aaa '??? ', 'userid ', '??? '
存储过程判断参数是不是指定的字符
方法2)先将记录取到出来,把不需要更新的字段也船进去
------解决方案--------------------
create proc procname
(@columnname varchar(255)
@value datatype
)

as

declare @@sql varchar(500)

set @@varchar= 'update tablename( '+@columnname+ ') values( '+@value+ ') '
exec @@sql

------解决方案--------------------
帮顶 !