关于触发器使用问题

明天是明天 2016-09-27 09:54:20
update employee set def16=a.depart_name from departs a where def16 is null and left(employee.depart_id,3)=a.depart_id
update employee set def17=a.depart_name from departs a where def17 is null and left(employee.depart_id,5)=a.depart_id and len(employee.depart_id)=9
update employee set def18=a.depart_name from departs a where def18 is null and left(employee.depart_id,7)=a.depart_id and len(employee.depart_id)=9

有三个UPDATE语句,想用触发器实现,没有思路,谢谢大家!
...全文
97 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
明天是明天 2016-09-27
  • 打赏
  • 举报
回复
引用 8 楼 roy_88 的回复:
UPDATE e
SET def16=ISNULL(d.depart_name,def16),def17=ISNULL(d2.depart_name,def17),def18=ISNULL(d3.depart_name,def18)
FROM employee AS e
	INNER JOIN inserted AS i ON e.employeeid=i.employeeid	--唯一
	LEFT JOIN departs AS d ON d.depart_id=LEFT(a.depart_id,3)
	LEFT JOIN departs AS d2 ON d2.depart_id=LEFT(a.depart_id,5)
	LEFT JOIN departs AS d3 ON d3.depart_id=LEFT(a.depart_id,7)
WHERE def16 IS NULL OR def17 is NULL OR def18 is NULL
谢谢@roy_88 ,非常完美,非常感谢您
中国风 2016-09-27
  • 打赏
  • 举报
回复
UPDATE e
SET def16=ISNULL(d.depart_name,def16),def17=ISNULL(d2.depart_name,def17),def18=ISNULL(d3.depart_name,def18)
FROM employee AS e
	INNER JOIN inserted AS i ON e.employeeid=i.employeeid	--唯一
	LEFT JOIN departs AS d ON d.depart_id=LEFT(a.depart_id,3)
	LEFT JOIN departs AS d2 ON d2.depart_id=LEFT(a.depart_id,5)
	LEFT JOIN departs AS d3 ON d3.depart_id=LEFT(a.depart_id,7)
WHERE def16 IS NULL OR def17 is NULL OR def18 is NULL
明天是明天 2016-09-27
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
你的具体问题是什么呢?
触发上面的 UPDATE语句, 例子是员工employee表, 新增员工时, 根据部门ID,关联更新 中心/部门/车间/班组四个字段,
明天是明天 2016-09-27
  • 打赏
  • 举报
回复
引用 3 楼 roy_88 的回复:
触发器是作用在那一个表?
就是触发上面的 UPDATE语句, 例子是员工employee表, 新增员工时, 根据部门ID,关联更新 中心/部门/车间/班组四个字段,
明天是明天 2016-09-27
  • 打赏
  • 举报
回复
引用 4 楼 yooq_csdn 的回复:
楼主可能有些概念混淆了。触发器是某些事件触发的,报需求描述再完整一点呗
就是触发上面的 UPDATE语句, 例子是员工employee表, 新增员工时, 根据部门ID,关联更新 中心/部门/车间/班组四个字段,
yooq_csdn 2016-09-27
  • 打赏
  • 举报
回复
楼主可能有些概念混淆了。触发器是某些事件触发的,报需求描述再完整一点呗
中国风 2016-09-27
  • 打赏
  • 举报
回复
触发器是作用在那一个表?
明天是明天 2016-09-27
  • 打赏
  • 举报
回复
怎么写,,只会写简单的数据更新,这种视图类的更新 还不会
卖水果的net 2016-09-27
  • 打赏
  • 举报
回复
你的具体问题是什么呢?

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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