永发信息网

(SQL数据库)我想创建一个存储过程来更新表中的数据

答案:2  悬赏:50  手机版
解决时间 2021-04-05 11:29
(SQL数据库)我想创建一个存储过程来更新表中的数据
最佳答案
create procedure update_table ( @c_tbname varchar(128), -- 要更新的表名
@c_upcolname varchar(1000), -- 要更新的字段列表,以豆号隔开
@c_updata varchar(1000), -- 要更新的数据列表,以豆号隔开,要与相应的列一一对应
@c_id varchar(100) -- 要更新的关键字,没有关键字的不能更新
)
as
begin
declare @c_sql varchar(max)
declare @i_bcol int
declare @i_ecol int
declare @i_bdata int
declare @i_edata int
if @c_id is null or @c_id = ''
return
set @i_bcol= 1
set @i_bdata= 1
set @c_sql = ' update ' + @c_tbname + ' set '
set @i_ecol = charindex(',' , @c_upcolname , @i_bcol )
while @i_ecol > 0
begin
set @c_sql = @c_sql + substring( @c_upcolname,@i_bcol,@i_ecol - 1 ) + ' = '
set @i_edata= charindex(',' , @c_updata, @i_bdata)
set @c_sql = @c_sql + '''' + substring( @c_updata,@i_bdata,@i_edata- 1 ) + ''' ,'
set @i_bcol = @i_ecol + 1
set @i_ecol = charindex(',' , @c_upcolname , @i_bcol )
end

set @c_sql = @c_sql + substring( @c_upcolname,@i_bcol,len@c_upcolname) - 1 ) + ' = '
set @c_sql = @c_sql + '''' + substring( @c_updata,@i_bdata,len(@c_updata)- 1 ) + ''' '
set @c_sql = @c_sql + ' where id = ''' + @c_id + ''' '
exec ( @c_sql )
end追问就是这个表,比如说我只修改ShenQingId这一列的信息,也可能修改ShenQingId和Workshop的内容。
追答创建存储过程后,根据实际情况运行存储过程就可以了.
比如要修改ShenQingId,调用存储过程
exec update_table('表名','ShenQingId','新的数据','要修改的数据的关键字')

修改ShenQingId和Workshop
exec update_table('表名','ShenQingId,Workshop','新的数据,Workshop新的数据','要修改的数据的关键字')
全部回答
你不确定更新的列 那传进来的参数都有些什么追问
就是这个表,比如说我只修改ShenQingId这一列的信息,也可能修改ShenQingId和Workshop的内容。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么天猫里试用的宝贝不计销量,这里有何内
如果将汽车向东行驶3千米,记为+3千米,那么
吃饭唯美的心情句子,鼓励吃饭的唯美句子
我是长脸型,上边窄下边宽,小眼睛,塌鼻子,
2018年3月4日往前数150天是几月几日
(—24分之5)乘15分之8乘(—2分之3)乘4分
淘宝好评语通用,淘宝50字通用好评语,怎么写
单选题下列各物质的分类、名称(或俗名)、化
公积金货款申请已通过初审银行还要审吗
桃树移栽好,马上嫁接能接活吗?
我的cf号是北京一区我朋友是河北一区现在是不
为什么LED灯会有闪烁现象
上海戏剧学院出了那些比较知名的明星?
好的诗朗诵的背景音乐有哪些?能推荐一些经典
急切求知心理学书目~!!!!!!!!
推荐资讯
A 有哪些含义?
18个0.25的4倍是多少?
分数57分之37的分子和分母都减去同一个整数,
放飞心灵的句子,急求有关 放飞心灵 的诗!!!!!
英格兰空压机油箱压力低是什么原因
与科学知识有关的 古诗词句
It was shortly before midnight, and Dr Pat
盱眙县地区高中毕业证代码是多少
13岁女生昨天把第一次给别人了后悔了怎么办
乡村文化建设宣传标语,求 推进法治文化名城建
单选题下列标语符合张贴场所要求的一项是A.争
等于8等于6等于13四格
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?