请教根据一个表得内容对另外表操作得存储过程,详细见内

coolfree 2003-08-19 02:38:13
假设有2个表,a1,a2,结构完全一样,都有字段 z1,z2,z3,z4,z5
求一个存储过程,完成功能如下:
输入得参数有两个,就是a1,a2得表名,
把a1表中和a2表中相同的记录的 z5 字段设置为1,用 z1,z2,z3 字段来比较2个表的记录是否相同.也就是找出a1表里面包含的a2表的记录,并做标记
...全文
17 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjb111 2003-08-19
  • 打赏
  • 举报
回复
create proc p_table2 @a1 varchar(25),@a2 varchar(25)
as
exec('update '+ @a1+' set z5=1 from '+ @a2+' as b where '+@a1+'.z1=b.z1 and '+@a1+'.z2=b.z2 and '+@a1+'.z3=b.z3')

go
愉快的登山者 2003-08-19
  • 打赏
  • 举报
回复
update a1 set z5 = 0
update a1 set z5 = 1 from a2 where a1.z1 = a2.z1 and a1.z2 = a2.z2 and a1.z3 = a2.z3


愉快的登山者


◢◣◢◣◢◣
愉快的登山者 2003-08-19
  • 打赏
  • 举报
回复
update a1 set z5 = 0
update a1 set z5 = 1 from a2 where a1.z1 = a2.z1 and a1.z2 = a2.z2 and a1.z3 = a2.z3


愉快的登山者


◢◣◢◣◢◣
hjb111 2003-08-19
  • 打赏
  • 举报
回复
create proc p_updatetable @a1 varchar(25),@a2 varchar(25)
as
exec('update '+ @a1+' set z5=1 from '+ @a2+' as b where '+@a1+'.z1=b.z1 and '+@a1+'.z2=b.z2 and '+@a1+'.z3=b.z3')
愉快的登山者 2003-08-19
  • 打赏
  • 举报
回复
update a1 set z5 = 0
update a1 set z5 = 1 from a2 where a1.z1 = a2.z1 and a1.z2 = a2.z2 and a1.z3 = a2.z3


愉快的登山者


◢◣◢◣◢◣
txlicenhe 2003-08-19
  • 打赏
  • 举报
回复
1:SQL 如下:
update a set z5 = 1 from a1 a
join a2 b on a.z1 = b.z1 and a.z2 = b.z2 and a.z3 = b.z3

2: 动态SQL如下:
declare @a1 varchar
declare @a2 varchar
declare @sql varchar
set @sql = 'update a set z5 = 1 from '
+ @a1 + ' a join ' + @a2
+ 'b on a.z1 = b.z1 and a.z2 = b.z2 and a.z3 = b.z3 '
exec(@sql)








愉快的登山者 2003-08-19
  • 打赏
  • 举报
回复
update a1 set z5 = 0
update a1 set z5 = 1 from a2 where a1.z1 = a2.z1 and a1.z2 = a2.z2 and a1.z3 = a2.z3


愉快的登山者


◢◣◢◣◢◣
CrazyFor 2003-08-19
  • 打赏
  • 举报
回复

exec('update '+ @变量1+' set z5=1 from '+ @变量2+' as b where '+@变量1+'.z1=b.z1 and '+@变量1+'.z2=b.z2 and '+@变量1+'.z3=b.z3')

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧