我是个新手大家,会的朋友来帮帮我。

zddzddzd 2007-04-10 11:59:06
现在需要改,如果表nyxscpdl中字段(tjdh)与 A2008XSYJ(tjdh)相同 则更新,否则就插入表A2008XSYJ

麻烦帮忙看看怎么改一下。谢谢了

CREATE trigger reloadTT on xsyjupdate for update

as
begin
if update (mo)
begin
declare @m int
set @m=0
select @m=cast(mo as int) from inserted
if @m=1
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl01,je01,lr01,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=2
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl02,je02,lr02,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=3
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl03,je03,lr03,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=4
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl04,je04,lr04,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=5
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl05,je05,lr05,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=6
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl06,je06,lr06,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=7
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl07,je07,lr07,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=8
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl08,je08,lr08,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=9
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl09,je09,lr09,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=10
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl10,je10,lr10,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=11
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl11,je11,lr11,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=12
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl12,je12,lr12,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl

end
end
...全文
322 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyc_music1981 2007-04-10
  • 打赏
  • 举报
回复
我觉得这东西用动态SQL不错,类似这样
declare @s varchar(4000)
set @s='select xl'+case when @m<10 then '0'else ''+ cast(@m as varchar) end +'...'
...
exec(@s)
zddzddzd 2007-04-10
  • 打赏
  • 举报
回复
+
zddzddzd 2007-04-10
  • 打赏
  • 举报
回复
rockyljt(江濤) 朋友,你帮了我两次了,我真的不会,麻烦写完整,谢谢你

CREATE trigger reloadTT on xsyjupdate for update

as
begin
if update (mo)
begin
declare @m int
set @m=0
select @m=cast(mo as int) from inserted
if @m=1
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl01,je01,lr01,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
if @m=2
insert into A2008XSYJ (tjdh,ryxm,cpmc,xl02,je02,lr02,ddkpzl,ddthzl,kpwtzl,jrkp) select tjdh,ryxm,cpmc,xszl,zxse,xslr,ddkpzl,ddthzl,kpwtzl,jrkp from nyxscpdl
……

end
end

zddzddzd 2007-04-10
  • 打赏
  • 举报
回复


nyxscpdl(tjdh)中 如果有A2008XSYJ(tjdh)相同的值 则更新,没有的话就添加,批量多条记录。 会的朋友帮帮修改一下,谢谢了。


---涛声依旧--- 2007-04-10
  • 打赏
  • 举报
回复
你可以加上:
if exists(select top 1 a.tjdh from nyxscpdl a
inner join A2008XSYJ b on a.tjdh=b.tjdh where 寫上你的條件)
begin
update A2008XSYJ set tjdh=...... where ...
end
else
begin
insert A2008XSYJ(字段...) ...
end
zddzddzd 2007-04-10
  • 打赏
  • 举报
回复
+
zddzddzd 2007-04-10
  • 打赏
  • 举报
回复
nyxscpdl去更新A2008XSYJ
zddzddzd 2007-04-10
  • 打赏
  • 举报
回复
逐条 nyxscpdl(tjdh)字段值 和A2008XSYJ(tjdh)相同 则UPDATA 表 A2008XSYJ 相应字段(tjdh,ryxm,cpmc,xl01,je01,lr01,ddkpzl,ddthzl,kpwtzl,jrkp) ,nyxscpdl(tjdh)字段值 在A2008XSYJ(tjdh)中未找到,则添加, 其中有个变量@m,得到选择的月份,
---涛声依旧--- 2007-04-10
  • 打赏
  • 举报
回复
如果表nyxscpdl中字段(tjdh)与 A2008XSYJ(tjdh)相同 则更新

樓說清楚點吧,要不實在無法寫完整
是用nyxscpdl裏面的數據去更新嗎?字段是怎么關聯的啊?
zddzddzd 2007-04-10
  • 打赏
  • 举报
回复
nyxscpdl(tjdh)中 如果有A2008XSYJ(tjdh)相同的值 则更新,没有的话就添加,多条记录。 会的朋友帮帮修改一下,谢谢了。

34,838

社区成员

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

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